zabbix啓動失敗的排查記錄

公司內部撘的zabbix服務器一直運行正常,某天突然發現zabbix-server服務啓動不了了,沒動過任何配置,記錄下問題的排查過程

1、pid file zabbix_server.pid not readable (yet?) after start

問題現象:

通過查看系統命令systemctl status zabbix-server和journalctl -u zabbix-server -f 發現一直提示
Error :: pid file /run/zabbix/zabbix_server.pid not readable (yet?) after start

問題解決:

通過刪掉/etc/systemd/system/zabbix-server.service 文件中pid這一行,解決這個問題(這個配置文件指向的是/var/run/zabbix_server.pid,實際運行/etc/zabbix/zabbix-server.conf文件中不一致,但之前沒有出現問題)

上一個解決完之後發現還是起不來,不過這次報錯變掉了

2、 cannot create semaphore set: [28] No space left on device

問題現象:

[root@mafei zabbix]# tail -n 10 /var/log/zabbix/zabbix_server.log
zabbix_server [12330]: cannot open log: cannot create semaphore set: [28] No space left on device
zabbix_server [12939]: cannot open log: cannot create semaphore set: [28] No space left on device
zabbix_server [13662]: cannot open log: cannot create semaphore set: [28] No space left on device

問題解決

實際問題猜測應該是因爲監控項的增加,系統限制過低導致,知道問題了就開始改
cat /proc/sys/kernel/sem
250 32000 32 128

kernel.sem 4個參數的意義

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 信號集的最大值

然後嘗試將kernel.sem參數設置的大一點

vim /etc/sysctl.conf
fs.file-max=65535
kernel.sem = 500 64000 64 256 //kernel.sem這個可以根據需求在適當的調大一些

修改完之後依舊嘗試重啓zabbix-server,不出意外果然還是起不來,這次報錯又變了。。。。

3、zbx_mem_malloc(): out of memory

問題現象:

在/var/log/zabbix/zabbix-server.log中出現大量的out of memory及其他內存使用情況的打印:
zbx_mem_malloc(): out of memory
###問題解決
到這裏實際上是因爲第二個報錯是解決了操作系統層面的限制,但是zabbix本身也是有限制的,默認的cache是8M,監控項一多,這個值就不夠了
報錯裏已經很明確的提示了修復辦法:please increase CacheSize configuration parameter
所以,我們就去zabbix_server.conf中找到CacheSize字段,默認是8M
/etc/zabbix/zabbix_server.conf
#CacheSize=8M

我這裏改成2G
CacheSize=2048M

保存之後重啓zabbix-server ,完美解決

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