我们有一个正在运行的 nagios 监控系统,之后我使用下面的命令监控我们的 vmware 数据存储插入 我安装了 vmware cli 并测试没有问题:
[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
我的服务器配置如下:
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
问题:有人知道问题出在哪里吗?或者我该如何追踪这个问题?
答案1
您的问题是 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
文件中,如果它还不存在的话。