1. 程式人生 > 其它 >elk中es分片數限制導致日誌接受異常

elk中es分片數限制導致日誌接受異常

事件背景:
早上的時候elk都是正常的,結果下午發現從10點之後很多索引的日誌都收不到了,只有極個別索引有日誌重新整理.
日誌有三種接入方式:
1. filebeat-->logstash-->es
2. rsyslog-->logstash-->es
3. filebeat-->kafka-->logstash-->es
第一種方式接入的日誌量不大,能正常更新;第二種方式接入的是安全類日誌,日誌接收異常;第三種應用日誌,也接收異常

  1. 檢視kibana中的es監控,發現es正常,負載也正常

通過介面檢視es健康狀況也沒什麼問題

  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

於是查看了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日誌中的警告日誌就沒有了,檢視日誌發現日誌也都接收到了.

一天一個小知識,日積月累,積沙成塔。。。