Agent报错信息如下:

zabbix_agentd [25937]: cannot create Semaphore: [28] No space left on device

zabbix_agentd [25937]: unable to create mutex for log file

一、重启操作系统可以释放

二、清除相应用户(nzx_zabbix)的信号量

法1

1.查看具体用户的共享内存的id

/usr/bin/ipcs -m | grep nzx_zabbix |awk '{print $2}'

[技术干货] zabbix_agent信号量报错处理方法

2.删除对应共享内存的标识

/usr/bin/ipcrm -m xxx

法2

1查看具体用户的SemaphoreKey

#/usr/bin/ipcs -s | grep nzx_zabbix |awk '{print $1}'

[技术干货] zabbix_agent信号量报错处理方法

  1. 删除由SemaphoreKey 创建的信号标识和与其相关的信号量集和数据结构。

/usr/bin/ipcrm -S xxx

法3

1.查看具体用户的信息量标识

#/usr/bin/ipcs -s | grep nzx_zabbix |awk '{print $2}'
[技术干货] zabbix_agent信号量报错处理方法

  1. 删除信号量标识 SemaphoreID 和与其相关的信号量集及数据结构。

/usr/bin/ipcrm -s xxx

三、增加信号量的上限

1./etc/sysctl.conf文件追加:

kernel.sem = 500 64000 64 256

2.让策略生效

sysctl -p

3.重启Agent

/opt/nzx_zabbix/sbin/zabbix_agentd -c /opt/nzx_zabbix/conf/zabbix_agentd.conf

注: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 信号集的最大值