elk中es分片数限制导致日志接受异常
事件背景:
早上的时候elk都是正常的,结果下午发现从10点之后很多索引的日志都收不到了,只有极个别索引有日志刷新.
日志有三种接入方式:
1. filebeat-->logstash-->es
2. rsyslog-->logstash-->es
3. filebeat-->kafka-->logstash-->es
第一种方式接入的日志量不大,能正常更新;第二种方式接入的是安全类日志,日志接收异常;第三种应用日志,也接收异常
- 查看kibana中的es监控,发现es正常,负载也正常
通过接口查看es健康状况也没什么问题
- 于是怀疑是不是kafka挂了
ps -ef | grep kafka
#查看kafka进程也都没问题
kafka-console-consumer.sh --bootstrap-server xxx:9092 --topic xxx
#控制台消费者查看kafka数据,发现数据是有的
- 看来也不是kafka的问题,再查看logstash的状态
ps -ef | grep logstash
于是查看了logstash的日志:
tail -100f logstash-plain.log
#发现有大量警告信息,如下图
从报错上来看,就是es的最大打开分片数达到上限,于是在kibana界面,查看es配置
发现没有分片相关配置,说明使用了默认值
参考这篇博客: https://blog.csdn.net/knight_zhou/article/details/105707342
于是设置了参数:"max_shards_per_node":12000
PUT /_cluster/settings
{
"persistent": {
"cluster": {
"max_shards_per_node":12000
}
}
}
再次查看配置:
然后logstash日志中的警告日志就没有了,查看日志发现日志也都接收到了.
每个人都在奋不顾身,都在加倍努力,得过且过只会让你和别人的差距越来越大...