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