使用docker 部署graylog集群

graylog 相比elk 有比较简单的方面,使用简单,配置简单,可视化工具是一体化的,比较方便

搭建使用docker,多主机部分,结合docker-compose 进行管理
具体docker 配置文件参考 http://docs.graylog.org/en/latest/pages/installation/docker.html

参考架构图

部署说明

mongodb 是复制集,对于es 是1master多data node 
graylog  使用master  node 模型(容器部署使用网络模型是host,因为要求多节点的时候rest——api 地址必须是可以互通的)

es 配置

  • master
cluster.name: grayloges_cluster
node.name: node-master
node.master: true
node.data: true
http.port: 9200
network.host: 0.0.0.0
network.publish_host: masterip
discovery.zen.ping.unicast.hosts: ["masterip"]
http.cors.enabled: true
http.cors.allow-origin: "*"
  • data node
cluster.name: grayloges_cluster
node.name: node-data
node.master: false
node.data: true
http.port: 9200
network.host: 0.0.0.0
network.publish_host: data-ip
discovery.zen.ping.unicast.hosts: ["masterip"]
http.cors.enabled: true
http.cors.allow-origin: "*"

graylog 配置

  • master
主要是 
is_master = true
  • node
is_master = false
  • 公共部分
mongodb_uri 使用复制集连接方式
elasticsearch_hosts 指定多个es 节点地址

启动

使用的是容器
配置文件通过挂在模式进行的
比如:
graylog:

volumes:
- ./graylog-data:/usr/share/graylog/data/journal
- ./config/graylog.conf:/usr/share/graylog/data/config/graylog.conf
es:
volumes:
- ./es:/usr/share/elasticsearch/data
- ./config/elasticsearch-data92.yml:/usr/share/elasticsearch/config/elasticsearch.yml

运行效果


常见问题解决

- NodePingThread - Did not find meta info of this node. Re-registering
节点之间时间必须同步,后者机器负载比较高,加大 stale_master_timeout 时间
或者调整jvm 参数
- 集群的话,必须存在一个master 而且只能有一个
- 使用docker 进行部署,因为有一个要求节点之间网络必须是可通信的,但是默认没有多docker 主机网络打通
   解决方法: network:host  或者overlay 打通多主机网络,或者主机路由

参考资料

http://docs.graylog.org/en/2.4/pages/configuration/multinode_setup.html#configure-multinode
http://docs.graylog.org/en/latest/pages/configuration/server.conf.html

posted on 2018-06-18 09:14  荣锋亮  阅读(1218)  评论(0编辑  收藏  举报

导航