Not all processes could be identified

Zabbix log里面发现"Not all processes could be identified"报错 在zabbix_agentd.conf里添加了一条监控项:

UserParameter=linux.people[*],netstat -antp|grep '$1'|grep -v LISTEN|wc -l

重启代理进程后,发现监控里的值为0,看了下日志发现不停地输出如下的log:

(Not all processes could be identified, non-owned process info 
will not be shown, you would have to be root to see it all.)

一直没找到问题所在,虽然在server端采集数据是没有任何问题,但是客户端的log中会一直报这个错误,后来su到zabbix用户执行了一下该命令,才发现了问题所在. 原来是netstat -lantup里的-p参数需要root用户才能使用,所以结果值总是为0. 修改如下: UserParameter=linux.people[*],netstat -ant|grep '$1'|grep -v LISTEN|wc -l 重启后正常了.

不能使用root,有时候执行一些命令还确实不方便.为了能让zabbix执行一些需要root才能支持的命令、参数等,只有使用sudo,解决步骤如下:

# groupadd monitor
# usermod -G zabbix
# visudo -f /etc/sudoers                   #增加最后两行,并且注释掉Defaults    requiretty
#Defaults    requiretty          #一定要注释掉
Cmnd_Alias MONITORING = /bin/netstat,/sbin/sudo   #以后还需要添加什么命令添加到后面即可
%monitor        ALL=(root) NOPASSWD:MONITORING