elk中es分片數限制導致日誌接受異常
阿新 • • 發佈:2021-12-16
事件背景:
早上的時候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日誌中的警告日誌就沒有了,檢視日誌發現日誌也都接收到了.
一天一個小知識,日積月累,積沙成塔。。。