一次線上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 占用的共享信號量,如下圖:
然后通過如下命令把這些共享信號量通通干掉;
ipcs -s | grep zabbix | awk '{print $2}' | xargs -n 1 ipcrm -s
干掉之后就可以正常啟動zabbix server了。
5,總結
問題是解決了,但是需要思考為啥會有這樣的問題產生,還是因為自己工作中沒有能夠防患于未然,該做的優化沒有做,給自己留下了坑,最終還是要自己來填,所以工作要盡量能夠提前把該做的做好,不然就會應了《無間道》那句臺詞“出來混,早晚要還的!”
---------------------------------------------
本文轉自腳下的路博客51CTO博客
zabbix
版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。