一次線上zabbix server 掛掉的思考

突然間發現zabbix 掛了,咋發現的呢?報警的世界突然安靜了,你就會覺得不妥了。這是運維人員的通病,有報警嫌煩,沒報警心裏會不安。
1,圖形界面上確實顯示zabbix server is not running
2,排查zabbix server 日誌
tail /var/log/zabbix/zabbix_server.log
發現有如下報警:

   zabbix_server [22890]: cannot open log: cannot create semaphore set: [28] No space left on device
   zabbix_server [22894]: cannot open log: cannot create semaphore set: [28] No space left on device
   zabbix_server [22898]: cannot open log: cannot create semaphore set: [28] No space left on device
   zabbix_server [22902]: cannot open log: cannot create semaphore set: [28] No space left on device
   zabbix_server [22907]: cannot open log: cannot create semaphore set: [28] No space left on device

3, 搜索一下發現是因爲給系統配置的共享內存值不夠,如何解決這個問題呢?需要分兩步解決。
第一步:優化系統的kernel.sem 的配置參數怎麼查看及四個對應參數的代表着個啥?

 cat /proc/sys/kernel/sem 
    250     32000   32      128

250       SEMMSL    max semaphores per array     信號集容納最大信號數量   
32000     SEMMNS    max semaphores system wide   所有信號的最大數量 
32        SEMOPM    max ops per semop call     調用單個信號集中最大信號數量 
128       SEMMNI    max number of arrays         信號集的最大值

信號量(Semaphore),有時被稱爲信號燈,是在多線程環境下使用的一種設施,它負責協調各個線程, 以保證它們能夠正確、合理的使用公共資源。Semaphore就像可以容納N人的房間,如果人不滿就可以進去,如果人滿了,就要等待有人出來。Semaphore的屬性如下:
SEMMSL
含義:每個信號量set中信號量最大個數 設置:最小250;對於processes參數設置較大的系統建議設置爲processes+10

SEMMNI
含義:linux系統信號量set最大個數 設置:最少128

SEMMNS

含義:linux系統中信號量最大個數 設置:至少32000;SEMMSL * SEMMNI

SEMOPM

含義:semop系統調用允許的信號量最大個數設置:至少100;或者等於SEMMSL

4,目前系統的默認值是肯定不夠了,不然zabbix 也不可能就掛了,所以先優化這個值。
echo “kernel.sem = 5010 641280 5010 128” >> /etc/sysctl.conf
然後執行 sysctl -p /etc/sysctl.conf
之後通過 sysctl -a |grep kernel.sem 確實修改是否成功
這個參數優化完成之後你是不是覺得zabbix server 可以正常啓動了?我告訴你不可以的,你再次啓動還是會報一開始拋的錯。你問我爲啥,因爲zabbix 佔用的共享信號量還沒有釋放,所以還是會報錯,需要把共享信號量釋放出來。
通過 ipcs 命名來查看zabbix 佔用的共享信號量,如下圖:
一次線上zabbix server 掛掉的思考

然後通過如下命令把這些共享信號量通通幹掉;
ipcs -s | grep zabbix | awk '{print $2}' | xargs -n 1 ipcrm -s

幹掉之後就可以正常啓動zabbix server了。
5,總結
問題是解決了,但是需要思考爲啥會有這樣的問題產生,還是因爲自己工作中沒有能夠防患於未然,該做的優化沒有做,給自己留下了坑,最終還是要自己來填,所以工作要儘量能夠提前把該做的做好,不然就會應了《無間道》那句臺詞“出來混,早晚要還的!”

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章