我们已经运行了一个nagios监控系统,并且在使用以下插件监控我们的vmware数据存储之后,我安装了vmware cli并进行了testing:
[root@nrpe-relay ~]# /usr/lib64/nagios/plugins/check_vmfs.sh -C /usr/lib64/nagios/plugins/vmware_esxi_conf.txt -S 192.168.20.241 -V /vmfs/volumes/LocalSlot45S6 -w 75 -c 90 -u Gb WARNING - /vmfs/volumes/LocalSlot45S6 - total: 931.25 Gb - used: 800.95 Gb (86%)- free: 130.29 Gb (14%) | /vmfs/volumes/LocalSlot45S6=800.95Gb;698.43;838.12;;931.25 [root@nrpe-relay ~]# ps auxww|grep nrpe nagios 1463 0.0 0.1 41468 1364 ? Ss 21:24 0:00 nrpe -c /etc/nagios/nrpe.cfg -d root 2261 0.0 0.0 103304 876 pts/0 S+ 22:00 0:00 grep nrpe
但是,当命令远程运行时,我没有得到相同的值:
[root@nagios nagios]# /usr/lib64/nagios/plugins/check_nrpe -H <hostname> -c 'check_datastore_LocalSlot45S6' CRITICAL -
这是我在我的cfg文件中
command[check_datastore_LocalSlot45S6]=/usr/lib64/nagios/plugins/check_vmfs.sh -C /usr/lib64/nagios/plugins/vmware_esxi_conf.txt -S 192.168.20.241 -V /vmfs/volumes/LocalSlot45S6 -w 75 -c 90 -u Gb
和我的服务器cfg:
define service{ use generic-service host_name <hostname> service_description datastore-LocalSlot45S6 check_command check_nrpe!check_datastore_LocalSlot45S6 }
这是我可以从/ var / log / message看到的:
nagios nagios: EXTERNAL COMMAND: SCHEDULE_FORCED_SVC_CHECK;<hostname>;datastore-LocalSlot1-2S3;1441798845
问题:任何人都知道问题出在哪里? 或者我怎样才能找出这个问题呢?
您的问题是,NRPE守护进程作为用户nagios运行,并且该用户没有权限运行有问题的命令。
你将不得不打开权限,以便用户可以运行它(顺便说一句,你的最后一条评论意味着你没有完全关注输出;它是文件/usr/lib64/nagios/plugins/check_vmfs.err哪个权限被拒绝了,而不是check_vmfs.sh ), 或者修改NRPEd使用无密码的sudo,例如
command[check_datastore_LocalSlot45S6]=sudo /usr/lib64/nagios/plugins/check_vmfs.sh -C /usr/lib64/nagios/plugins/vmware_esxi_conf.txt -S 192.168.20.241 -V /vmfs/volumes/LocalSlot45S6 -w 75 -c 90 -u Gb
再加上类似的sudoers入门
nagios ALL=(root) NOPASSWD: /usr/lib64/nagios/plugins/check_vmfs.sh
如果你采取后者的路线,你将需要也有
Defaults !requiretty
在你的sudoers文件中,如果它不在那里。