2019年2月28日
1.skywalking dashboard 13:57開始突然沒有數據
顯示如下
此時es狀態:
觀看skywalking 中collector日誌:
其中出現大量的錯誤日誌(本次服務於11點30重啓後就一直存在)
觀看skywalking 中agent的日誌:
出現大量此類日誌,繼續往上查看日誌
發現其中的關鍵在於
es 在寫入的時候 已經沒有資源去處理了,所以會一直顯示有to many request,"es_rejected_execution_exception"這類日誌
所以結合log,可以得出本質問題出現在es處理 skywalking collector 數據寫入時,已經無法分配出資源來。原因主要是機器資源緊張…,所以可以從以下幾個方面去優化
可以修改 es 寫的queue的size,同時修改es bulk處理的一些配置,如調小flush的時間 和 flush的數據大小,同時es的bulk 可以設置忽律數據寫入失敗後的重試(這裏視數據重要程度而定)。
https://www.elastic.co/guide/en/elasticsearch/client/java-api/5.5/java-docs-bulk-processor.html
集羣化es
修改queue_size的時候發現 不可動態修改,因此需要在es的yml文件中增加配置來修改
thread_pool.write.queue_size: 1000
官網yml相關參數設置的寫法