graylog集群(es+mongo+graylog-sidecar+nginx负载均衡) 全docker配置(3节点)

这篇具有很好参考价值的文章主要介绍了graylog集群(es+mongo+graylog-sidecar+nginx负载均衡) 全docker配置(3节点)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

一、资源列表与拓扑

注:初始环境等跳过配置

node1

192.168.1.100

mongo:latest

elasticsearch-oss:7.10.2

graylog:4.3

node2 192.168.1.101 mongo:latest

elasticsearch-oss:7.10.2

graylog:4.3

node3 192.168.1.102 mongo:latest

elasticsearch-oss:7.10.2

graylog:4.3

graylog集群(es+mongo+graylog-sidecar+nginx负载均衡) 全docker配置(3节点)

二、mongo-service (replSet)集群配置

####可以直接3台全部pull
docker pull mongo
####如内网机器,需先在一台上pull后,将镜像保存,在其它2台load
docker save mongo:latest -o /data/mongo.tar.gz
scp -r /data/mongo.tar.gz root@192.168.1.101:/data/
scp -r /data/mongo.tar.gz root@192.168.1.102:/data/
docker load -i /data/mongo.tar.gz

####创建挂载目录
mkdir /data/mongo/{data,config}
####启动命令
docker run -itd --restart=always --name mongo-service -p 27017:27017 -v /data/mongo/data:/data/db -v /data/mongo/config:/data/configdb mongo:latest --replSet colonyReplSet

####选择任一配置集群,node1
docker exec -it mongo-service /bin/bash
mongo
config={
"_id" : "colonyReplSet",
"version" : 1,
"members" : [
{
"_id" : 0,
"host" : "192.168.1.100:27017",
"priority" : 6
},
{
"_id" : 1,
"host" : "192.168.1.101:27017",
"priority" : 3
},
{
"_id" : 2,
"host" : "192.168.1.102:27017",
"priority" : 2
}
]
}
rs.initiate(config)

####选择任一查看状态
rs.status()

三、elasticsearch-service 集群配置

####3台
docker pull elasticsearch:7.10.2

####如内网机器,需先在一台上pull后,将镜像保存,在其它2台load
docker save docker.elastic.co/elasticsearch/elasticsearch-oss:7.10.2 -o /data/es-docker-7.10.2.tar.gz
scp -r es-docker-7.10.2.tar.gz  root@192.168.1.101:/data/
scp -r es-docker-7.10.2.tar.gz  root@192.168.1.102:/data/
docker load -i /data/es-docker-7.10.2.tar.gz

####创建挂载目录
mkdir /data/elasticsearch/config -p
mkdir /data/elasticsearch/config/{data,logs,plugins}

####node1
vim /data/elasticsearch/config/es.yml
cluster.name: elasticsearch-cluster
cluster.initial_master_nodes : es-node1
node.name: es-node1
network.bind_host: 0.0.0.0
network.publish_host: 192.168.1.100
http.port: 9201
transport.tcp.port: 9301
discovery.zen.minimum_master_nodes: 2
http.max_content_length: 2000mb
http.max_header_size: 1024k
http.max_initial_line_length: 1024k
http.cors.enabled: true
http.cors.allow-origin: "*"
node.master: true
node.data: true  
discovery.zen.ping.unicast.hosts:  ["192.168.1.100:9301","192.168.1.101:9301","192.168.1.102:9301"]

####node2
vim /data/elasticsearch/config/es.yml
cluster.name: elasticsearch-cluster   #集群名(三个节点一致)
node.name: es-node2   #节点名(每台节点不同)
network.bind_host: 0.0.0.0
network.publish_host: 192.168.1.101  #对外地址
http.port: 9201 #对外端口(每台机器装一个ES则不用改)
transport.tcp.port: 9301 #ES内部通信端口(每台机器装一个ES则不用改)
discovery.zen.minimum_master_nodes: 2 #主节点数/2+1,防止脑裂
http.max_content_length: 2000mb
http.max_header_size: 1024k
http.max_initial_line_length: 1024k
http.cors.enabled: true
http.cors.allow-origin: "*"
node.master: false
node.data: true  
discovery.zen.ping.unicast.hosts:  ["192.168.1.100:9301","192.168.1.101:9301","192.168.1.102:9301"]

####node3
vim /data/elasticsearch/config/es.yml
cluster.name: elasticsearch-cluster   #集群名(三个节点一致)
node.name: es-node3   #节点名(每台节点不同)
network.bind_host: 0.0.0.0
network.publish_host: 192.168.1.102  #对外地址
http.port: 9201 #对外端口(每台机器装一个ES则不用改)
transport.tcp.port: 9301 #ES内部通信端口(每台机器装一个ES则不用改)
discovery.zen.minimum_master_nodes: 2 #主节点数/2+1,防止脑裂
http.max_content_length: 2000mb
http.max_header_size: 1024k
http.max_initial_line_length: 1024k
http.cors.enabled: true
http.cors.allow-origin: "*"
node.master: false
node.data: true  
discovery.zen.ping.unicast.hosts:  ["192.168.1.100:9301","192.168.1.101:9301","192.168.1.102:9301"]

####3台配置目录权限
chmod 777 /data/elasticsearch/config -R

####启动docker
docker run -itd -e ES_JAVA_OPTS="-Xms8g -Xmx8g -Dlog4j2.formatMsgNoLookups=true" \
-p 9201:9201 -p 9301:9301 \
-e ES_MIN_MEM=1024m \
-e ES_MAX_MEM=8192m \
-v /data/elasticsearch/config/es.yml:/usr/share/elasticsearch/config/elasticsearch.yml \
-v /data/elasticsearch/config/data/:/usr/share/elasticsearch/data/ \
-v /data/elasticsearch/config/logs/:/usr/share/elasticsearch/logs/ \
--restart=on-failure \
--name ES \
docker.elastic.co/elasticsearch/elasticsearch-oss:7.10.2

##查看状态

[root@graylog-master config]# curl http://127.0.0.1:9201/_cat/nodes?pretty
192.168.1.102 2 75 1 0.37 0.45 0.27 dir  - es-node3
192.168.1.101 0 75 1 0.28 0.21 0.13 dir  - es-node2
192.168.1.100 1 75 0 0.17 0.34 0.40 dimr * es-node1

四、graylog 集群配置

####3台直接pull
docker pull graylog/graylog:4.3

####如内网机器,需先在一台上pull后,将镜像保存,在其它2台load
docker save graylog/graylog:4.3 -o /data/graylog-4.3.tar.gz
docker scp -r /data/graylog-4.3.tar.gz root@192.168.1.101:/data/
docker scp -r /data/graylog-4.3.tar.gz root@192.168.1.102:/data/
docker load -i /data/graylog-4.3.tar.gz

####创建挂载目录
mkdir /data/graylog/ -p

####安装sha
yum install perl-Digest-SHA pwgen -y
pwgen -N 1 -s 96
echo -n admin| shasum -a 256

####node1上配置文件
cat graylog.conf
is_master = true
node_id_file = /usr/share/graylog/data/config/node-id
password_secret =
root_password_sha2 =
root_timezone = Asia/Shanghai
bin_dir = /usr/share/graylog/bin
data_dir = /usr/share/graylog/data
plugin_dir = /usr/share/graylog/plugin
http_bind_address = 0.0.0.0:9000
http_publish_uri = http://192.168.1.100:9000/
elasticsearch_hosts = http://192.168.1.100:9201,http://192.168.1.101:9201,http://192.168.1.102:9201
rotation_strategy = count
elasticsearch_max_docs_per_index = 20000000
elasticsearch_max_number_of_indices = 20
retention_strategy = delete
elasticsearch_shards = 4
elasticsearch_replicas = 0
elasticsearch_index_prefix = graylog
allow_leading_wildcard_searches = false
allow_highlighting = true
elasticsearch_analyzer = standard
output_batch_size = 500
output_flush_interval = 1
output_fault_count_threshold = 5
output_fault_penalty_seconds = 30
processbuffer_processors = 8
outputbuffer_processors = 16
processor_wait_strategy = blocking
ring_size = 65536
inputbuffer_ring_size = 65536
inputbuffer_processors = 2
inputbuffer_wait_strategy = blocking
message_journal_enabled = true
message_journal_dir = data/journal
lb_recognition_period_seconds = 3
mongodb_uri = mongodb://192.168.1.100:27017/graylog,192.168.1.101:27017/graylog,192.168.1.102:27017/graylog
mongodb_max_connections = 1000
mongodb_threads_allowed_to_block_multiplier = 5
proxied_requests_thread_pool_size = 32 

####node2 node3(修改以下2行)
is_master = false
http_publish_uri = http://192.168.1.10????:9000/


##启动前配置,经测试 如无权限相关配置,docker启动失败
mkdir /data/graylog/journal -p
mkdir /data/graylog/data/config -p
将如上graylog.conf 放到config目录下
chmod 777 /data/graylog -R 

#master启动命令(其它2台更改ip即可)
docker run -itd \
--link es \
--link mongo-service \
-p 9000:9000 \
-p 5044:5044 \
-p 12201:12201 -p 12201:12201/udp \
-p 5140:5140 -p 5140:5140/udp \
-p 5555:5555 -p 5555:5555/udp \
-p 10000:10000 -p 10000:10000/udp \
-p 13301:13301 -p 13301:13301/udp \
-p 13302:13302 -p 13302:13302/udp \
-e GRAYLOG_HTTP_EXTERNAL_URI=http://192.168.1.100:9000/ \
-e GRAYLOG_PASSWORD_SECRET=somepasswordpepper \
-e GRAYLOG_ROOT_PASSWORD_SHA2=8c6976e5b5410415bde908bd4dee15dfb167a9c873fc4bb8a81f6f2ab448a918 \
-v /etc/localtime:/etc/localtime:ro \
-v /data/graylog/journal:/usr/share/graylog/data/journal \
-v /data/graylog/data/config:/usr/share/graylog/data/config \
--name graylog \
graylog/graylog:4.2

 4.1登陆graylog查看system/nodes节点

graylog集群(es+mongo+graylog-sidecar+nginx负载均衡) 全docker配置(3节点)

4.2graylog-sidecar收集日志

创建收集日志的Inputs 建立输入:system/inputs/(select input-> Beats  )/ Launch new input  /(配置如下 主题&端口 其它默认即可) / save (集群必须勾选Global)

graylog集群(es+mongo+graylog-sidecar+nginx负载均衡) 全docker配置(3节点)

4.3创建一个api token 客户端配置的时候使用

 System/sidecar -> Create or reuse a token for the graylog-sidecar user.

graylog集群(es+mongo+graylog-sidecar+nginx负载均衡) 全docker配置(3节点)

graylog集群(es+mongo+graylog-sidecar+nginx负载均衡) 全docker配置(3节点)

graylog集群(es+mongo+graylog-sidecar+nginx负载均衡) 全docker配置(3节点)

graylog集群(es+mongo+graylog-sidecar+nginx负载均衡) 全docker配置(3节点)

记住 token,配置客户端使用 

4.4客户端配置graylog-sidecar收集日志

sudo rpm -ivh https://packages.graylog2.org/repo/el/sidecar-stable/1.2/x86_64/graylog-sidecar-1.2.0-1.x86_64.rpm

cat /etc/graylog/sidecar/sidecar.yml
server_url: "http://192.168.1.100:9000/api/"
server_api_token: "8dbf0i0l6q2gmgul0j3ki552l68tphi22vbhu0fcrrpbc7e549" ###token填写自己的
node_id: "yoyiweb"  ###自定义,或用主机名
update_interval: 10
tls_skip_verify: false
send_status: true

graylog-sidecar -service install
systemctl start  graylog-sidecar
systemctl enable  graylog-sidecar
systemctl status  graylog-sidecar

4.5服务端配置sidecar 

在System/sidecar → configuration→ create configuration ->输入名字、选择collector(filebeat on Linux)→修改config里面的信息(paths 及 output地址)

graylog集群(es+mongo+graylog-sidecar+nginx负载均衡) 全docker配置(3节点)

 graylog集群(es+mongo+graylog-sidecar+nginx负载均衡) 全docker配置(3节点)

  配置关联 System/sidecar →Administration->选中chemex下的filebeat->点击右侧configure→ 关联选中yoyi-web

graylog集群(es+mongo+graylog-sidecar+nginx负载均衡) 全docker配置(3节点)

 客户端配置查看服务,会自动启动一个filebeat进程,传输日志

graylog集群(es+mongo+graylog-sidecar+nginx负载均衡) 全docker配置(3节点)

4.6问题1: 收集处理单节点问题,如图显示

graylog集群(es+mongo+graylog-sidecar+nginx负载均衡) 全docker配置(3节点)

解决措施:

办法1:在客户端配置时,ip填写注意将各节点均分;

局限性:当节点挂掉之后,日志收集不上来,更改ip等需要更改配置文件,重启graylog-sidear 服务

办法2:netscaler创建vip,客户端填写vip

局限性:需要采购硬件slb

办法3:与2相同,创建一个nginx 负载均衡,进行转发

局限性:增大了运维难度

五、nginx 负载均衡 docker部署

docker pull nginx
mkdir /data/nginx  -p

##配置文件,添加负载
##8080--》graylog web
##8081--》graylog input 12201
##8082--》graylog input 12202
##8083--》graylog input 12203

cat nginx.conf 
user  nginx;
worker_processes  auto;

error_log  /var/log/nginx/error.log notice;
pid        /var/run/nginx.pid;


events {
    worker_connections  1024;
}


http {
    include       /etc/nginx/mime.types;
    default_type  application/octet-stream;

    log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
                      '$status $body_bytes_sent "$http_referer" '
                      '"$http_user_agent" "$http_x_forwarded_for"';

    access_log  /var/log/nginx/access.log  main;

    sendfile        on;
    #tcp_nopush     on;

    keepalive_timeout  65;

    #gzip  on;

#    include /etc/nginx/conf.d/*.conf;
}

stream {
    upstream graylog_servers{
      server 192.168.1.100:9000;
      server 192.168.1.101:9000;
      server 192.168.1.102:9000;
    }
    server {
        listen       9000;
        proxy_pass   graylog_servers;
    }

    upstream server_input1{
	server 192.168.1.100:12201;
	server 192.168.1.101:12201;
	server 192.168.1.102:12201;
    }
    server {
	listen       12201;    
	proxy_pass  server_input1;
    }	

    upstream server_input2{
	server 192.168.1.100:12202;
	server 192.168.1.101:12202;
	server 192.168.1.102:12202;
    }
    server {
	listen       12202;
	proxy_pass  server_input2;
    }

    upstream server_input3{
	server 192.168.1.100:12203;
	server 192.168.1.101:12203;
	server 192.168.1.102:12203;
    }
    server {
	listen       12203; 
        proxy_pass  server_input3;
    }
}


##docker 启动
docker run -itd \
--link es \
--link mongo-service \
--link graylog \
-p 8080:9000 \
-p 8081:12201 \
-p 8082:12202 \
-p 8083:12203 \
-v /etc/localtime:/etc/localtime:ro \
-v /data/nginx/nginx.conf:/etc/nginx/nginx.conf \
--name nginx \
nginx

5.1 nginx 负载完后,需修改对应配置文件

需修改客户端gaylog-sideater 中url地址

 cat /etc/graylog/sidecar/sidecar.yml
server_url: "http://192.168.1.100:8080/api/"

5.2需修改服务器System/sidecar → configuration 中信息

output.logstash:
   hosts: ["192.168.1.100:8081"]

5.3查看各node状态

graylog集群(es+mongo+graylog-sidecar+nginx负载均衡) 全docker配置(3节点)文章来源地址https://www.toymoban.com/news/detail-408215.html

到了这里,关于graylog集群(es+mongo+graylog-sidecar+nginx负载均衡) 全docker配置(3节点)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Nginx反向代理配置+负载均衡集群部署

    什么是代理 正向代理既是通过代理服务器访问外网资源,而反向代理与之相反是将局域网的资源通过反向代理服务器提供给互联网用户浏览和使用等。 实验环境图 流量过程 当客户端发起请求后通过Internet (本实验为NAT网卡)来到代理服务器上,代理服务器经算法选择后调用

    2024年02月13日
    浏览(34)
  • Nginx+Tomcat实现负载均衡、动静分离集群部署

    1、安装好JDK 2、安装tomcat 3、配置tomcat环境变量 4、修改tomcat2中的server.xml文件,要求各tomcat实例配置不能有重复的端口号 5、修改各tomcat实例中的startup.sh和shutdown.sh文件,添加tomcat环境变量 6、启动各tomcat中的/bin/startup.sh 7、浏览器访问测试 1、Nginx应用 Nginx是一款非常优秀的

    2024年02月08日
    浏览(84)
  • Nginx+Tomcat负载均衡(反向代理)、动静分离集群

    Nginx:正向代理(知道目标服务器) 反向代理(不知道目标服务器) Nginx配置反向代理主要参数 upstream服务池名{}(F5(硬件)和nginx反向代理原理一样) 配置后端服务池,以提供响应数据 proxy_pass http://服务池名 配置将访问请求转发给后端服务器池的服务器处理 定义:将工作任务

    2024年02月13日
    浏览(33)
  • 利用nginx实现动静分离的负载均衡集群实战

    大家好,我是沐风晓月,今天我们利用nginx来作为负载,实现两台apache服务器的动静分离集群实战; 本文收录于沐风晓月的专栏《linux基本功-系统服务实战》,更多内容可以关注我的博客: https://blog.csdn.net/wisdom_futrue 本次用到的操作系统及服务: 本次实验一共需要3台服务器

    2024年02月02日
    浏览(30)
  • 集群、负载均衡集群、高可用集群简介,LVS模式和haproxy/nginx模式拓扑介绍

    目录 一.集群的定义 1.定义 2.分类 (1)负载均衡集群(LBC/LB) (2)高可用集群(HAC) 二.使用集群的意义 1.高性价比和性能比 2.高可用性 3.可伸缩性强 4.持久和透明性高 三.常见的两种集群模式拓扑 1.LVS(-DR)集群模式 (1)工作架构 (2)LVS下的相关术语 (3)LVS的工作模式

    2024年02月13日
    浏览(33)
  • Linux上搭建Nacos集群 + nginx做负载均衡

    下载Nacos:访问Nacos的官方网站(https://nacos.io),在下载页面上选择适合您的操作系统和版本,下载Nacos的安装包。 解压安装包:将下载的安装包解压到指定的目录。 配置集群节点:进入解压后的Nacos目录,进入 conf 文件夹,并编辑 cluster.conf 文件。在该文件中,添加集群中每

    2024年02月09日
    浏览(67)
  • LVS-DR集群及NGINX负载均衡

    原理: 1. 当用户向负载均衡调度器(Director Server)发起请求,调度器将请求发往至内核空间 2. PREROUTING链首先会接收到用户请求,判断目标IP确定是本机IP,将数据包发往INPUT链 3. IPVS是工作在INPUT链上的,当用户请求到达INPUT时,IPVS会将用户请求和自己已定义好的集群 服务进

    2024年02月13日
    浏览(30)
  • web集群学习:基于nginx的反向代理和负载均衡

    目录 一,反向代理 1,环境准备 2,配置代理服务器 3,在物理机上一管理员身份打开文本编辑器,编辑C:WindowsSystem32driversetc目录下的hosts文件 4,访问测试 5,查看日志,并记录客户端真实ip地址 二,负载均衡 1,upstream模块 2,实现配置简单的负载均衡 3,实现backup功能 4,

    2024年02月13日
    浏览(68)
  • 基于nginx+keepalived的负载均衡、高可用web集群

    项目描述: 本项目旨在构建一个高性能、高可用的web集群,使用ansible批量部署项目环境,nginx实现七层负载均衡,NFS实现web服务器机器的数据同源,keepalived搭建双VIP实现高可用,Prometheus+grafana实现对LB负载均衡服务器以及NFS服务器的监控。 项目环境: CentOS 7.9、Nginx 1.25.2、

    2024年02月09日
    浏览(35)
  • WEB集群——LVS-DR 群集、nginx负载均衡

    1、基于 CentOS 7 构建 LVS-DR 群集。 2、配置nginx负载均衡。 LVS-DR(Linux Virtual Server Director Server) 名称 缩写 说明 虚拟IP地址(Virtual IP Address) VIP Director用于向客户端计算机提供服务的IP地址 真实IP地址(Real Server IP Address) RIP 在集群下面节点上使用IP地址 Director的IP地址(Director IP Add

    2024年02月13日
    浏览(36)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包