Chinaunix首页 | 论坛 | 博客
  • 博客访问: 2446491
  • 博文数量: 540
  • 博客积分: 11289
  • 博客等级: 上将
  • 技术积分: 6160
  • 用 户 组: 普通用户
  • 注册时间: 2008-02-11 20:27
个人简介

潜龙勿用,见龙在田

文章分类

全部博文(540)

文章存档

2018年(2)

2013年(5)

2012年(24)

2011年(104)

2010年(60)

2009年(217)

2008年(128)

分类: LINUX

2010-08-02 11:46:00

zabbix 1.6.5:
在zabbix_agentd.conf里添加了一条监控项:
UserParameter=router_est,netstat -lantup|grep router|grep -c EST
重启代理进程后,发现监控里的值为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.)

一直没找到问题所在,开始以为是版本过低,对某些符号的组合不支持.但是添加item的时候既然是active的,那说明是支持的,否则会显示not support了.
用最新版1.8.2的agentd进程试了下也不行,后来su到zabbix用户执行了一下该命令,才发现了问题所在. 原来是netstat -lantup里的-p参数需要root用户才能使用,所以结果值总是为0.
修改如下:
UserParameter=router_est,netstat -an|awk '$4~/:5102[1-4]/&&/EST/{t++}'END'{print t}'
重启后正常了.
(其实前面的统计方法"netstat -lantup|grep router|grep -c EST"也不十分精确,所以后面统计命令也有改动)

不能使用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
这样就可以以root的身份来使用netstat中的-p参数了,不会再有提示. zabbix_agentd.conf中内容:

UserParameter=router_est,netstat -an|awk '$4~/:5102[1-4]/&&/EST/{t++}'END'{print t}'
UserParameter=router_est_test,sudo netstat -lantup|awk '$4~/:5102[1-4]/&&/EST/&&/router/{t++}'END'{print t}'


阅读(9792) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~