当我们在启动zabbix_server时,经常遇到的情况:表面上已经启动了Zabbix服务,查看zabbix服务状态显示Active,显示启动,但是发现并没有生成zabbix_server.pid。
然后通过ps 查看进程发现并没有zabbix_server进程
ps -ef | grep zabbix
然后查看zabbix_server.log日志,报错如下:
cannot create Semaphore: [28] No space left on device zabbix_server [4475]: unable to create mutex file log
报错原因:判断应该是因为监控项的增加,系统限制过低导致。
解决方法:
1、首先查看系统内核参数
cat /proc/sys/kernel/sem
250 32000 32 128
2、然后修改 vim /etc/sysctl.conf
sudo vim /etc/sysctl.conf
修改 kernel.sem =500 64000 64 256
这里备注上kernel.sem 4个参数的意义:
500 SEMMSL max semaphores per array 信号集容纳最大信号数量
64000 SEMMNS max semaphores system wide 所有信号的最大数量
64 SEMOPM max ops per semop call 调用单个信号集中最大信号数量
256 SEMMNI max number of arrays 信号集的最大值
注:如果没有设置kernel.sem ,则手动添加
3、然后执行生效
sysctl -p /etc/sysctl.conf
4、生效后查看cat /proc/sys/kernel/sem
OK~ 设置成功
5、然后重启 zabbix_server服务。
sudo /etc/init.d/zabbix_server restart
此时,发现zabbix_server.pid 文件生成了~
6、然后查看进程
ps -ef | grep zabbix
此时zabbix的server与agent都已经启动成功~
7、查看zabbix服务状态
均OK~
彻底解决~