elk中es分片数限制导致日志接受异常

事件背景:
早上的时候elk都是正常的,结果下午发现从10点之后很多索引的日志都收不到了,只有极个别索引有日志刷新.
日志有三种接入方式:
1. filebeat-->logstash-->es
2. rsyslog-->logstash-->es
3. filebeat-->kafka-->logstash-->es
第一种方式接入的日志量不大,能正常更新;第二种方式接入的是安全类日志,日志接收异常;第三种应用日志,也接收异常

  1. 查看kibana中的es监控,发现es正常,负载也正常
    image

通过接口查看es健康状况也没什么问题
image

  1. 于是怀疑是不是kafka挂了
ps -ef | grep kafka
#查看kafka进程也都没问题
kafka-console-consumer.sh --bootstrap-server xxx:9092 --topic xxx
#控制台消费者查看kafka数据,发现数据是有的
  1. 看来也不是kafka的问题,再查看logstash的状态
ps -ef | grep logstash

image

于是查看了logstash的日志:

tail -100f logstash-plain.log
#发现有大量警告信息,如下图

image

从报错上来看,就是es的最大打开分片数达到上限,于是在kibana界面,查看es配置
image
发现没有分片相关配置,说明使用了默认值

参考这篇博客: https://blog.csdn.net/knight_zhou/article/details/105707342

于是设置了参数:"max_shards_per_node":12000

PUT /_cluster/settings
{
  "persistent": {
    "cluster": {
      "max_shards_per_node":12000
    }
  }
}

再次查看配置:
image

然后logstash日志中的警告日志就没有了,查看日志发现日志也都接收到了.

posted @ 2021-12-16 17:31  乐百事  阅读(874)  评论(0编辑  收藏  举报