Docker + ELK 分布式部署配置

目前单机配置的ELK访问 Kibana 的时候,出现非常缓慢的问题,可能是大量的写入占用了太多的资源,影响了数据查询的速度,所以现在将ElasticSearch改为集群配置,目前单机继续扩容的想法,这样也可以充分利用其它机器的性能来提供日志写入和查询的速度

我们 ELK 选择的版本是 7.1.0 的版本,集群配置主要是对 ElasticSearch 的配置做一定的修改,配置后结构如下图:

首先开始配置 ElasticSearch 的配置信息

cluster.name: "elk-cluster"
node.name: elk-pro4
network.host: 0.0.0.0
network.publish_host: 172.19.99.39
node.master: true
node.data: true

discovery.type: zen
discovery.seed_hosts:
  - 172.19.99.37:9300
  - 172.19.99.38:9300
  - 172.19.99.39:9300
cluster.initial_master_nodes:
  - elk-pro3
  - elk-pro2
  - elk-pro4

这里配置了三台主机,每台机器都保存数据且可以竞选master,因为版本是 7.1.0 的版本,所以之前版本都是需要配置一个 minimum_master_nodes 参数来防止某一台脱离集群后发生脑裂的问题,所以网上资料一般都会要求这个配置为2,起码有两台机器竞选才能选出master,但是在7.0之后的版本, 官方因为很多用户的错误配置反而增加了集群脑裂的风险所以删除了这个参数,所以不需要再配置这个参数,可以参考 https://www.elastic.co/cn/blog/elasticsearch-7-0-0-released

三台机器都配置好后,重启之前配置的Docker-compose 即可启动新的 ElasticSearch 服务

然后需要修改 Logstash 的配置参数,支持集群配置,通过修改文件 logstash/pipeline/logstash.conf

input {
        tcp {
                port => 5000
                codec => json
        }
}

## Add your filters / logstash plugins configuration here

output {
    elasticsearch {
        hosts => ["172.19.19.37:9200","172.19.19.38:9200","172.19.19.39:9200"]
        index => "logstash-api-%{+YYYY.MM.dd}"
    }
}

日志记录的 index 按日来滚动,方便日后管理

Kibana 本身就只能连接一台ElasticSearch,所以不需要做什么配置,可以连接任意一台,或者专门跑一个不保存数据且不会竞选的 ElasticSearch 专门给 Kibana 的连接集群也行,目前的问题可能就是 Kibana 连接的 ElasticSearch 如果挂了,就会直接无法查看日志了

 

 

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值