ELK logstash 啟動慢的解決方法


最近開始測試部署ELK, 在部署logstash的時候出現一個故障:

logstash在第一次安裝完成以后啟動正常, 但是之后啟動時間越來越長, 5分鍾以上甚至10多分鍾。以至於懷疑程序錯誤, 在重裝以軟件和系統以后問題還是沒有解決。

搜索到github上的一個issue, 解釋如下:

系統的“熵”低了。 查了一下, 這個熵好像是用來生成隨機數的。

 

如果出現logstash啟動慢,使用如下命令查詢,。

cat /proc/sys/kernel/random/entropy_avail

如果返回值小於1000, 那么就需要安裝haveged包。

 

jruby啟動的時候jdk回去從/dev/random中初始化隨機數熵,新版本的jruby會用RPNG算法產生隨后的隨機數,但是舊版本的jruby會持續從/dev/random中獲取數字。但是不幸的是,random發生器會跟不上生成速度,所以獲取隨機數的過程會被阻塞,直到隨機數池擁有足夠的熵然后恢復。這在某些系統上,尤其是虛擬化系統,熵數池可能會比較小從而會減慢jruby的啟動速度。

檢查了一下系統的熵數池 cat /proc/sys/kernel/random/entropy_avail ,發現只有65,正常情況這個數字推薦大於1000,對比了一下獨立主機的這個數值,大約在700-900之間晃悠。

解決

最簡單的解決方案是安裝一個熵數發生器,比如 Haveged ,centos可從epel源中獲取,安裝后啟動服務 sudo systemctl start haveged 就可以看到entropy_avail暴漲至2000多,logstash幾乎是秒啟,然后再 sudo systemctl enable haveged 設為開機自啟。

 

我在安裝了以后, logstash啟動慢的問題解決,在10秒內啟動。

參考鏈接如下:


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM