我有一个工作Nagios的设置,我例如通过NRPE守护进程监视磁盘使用情况,而不是通过NRPEparsing参数出于安全原因。 所以我知道NRPE是有效的。
现在我想使用check_mountpoints插件检查NFS,但是我得到了
NRPE: Unable to read output
在Nagios监视器主机上,我已经设置
define command { command_name check_mountpoints command_line $USER1$/check_nrpe -H $HOSTADDRESS$ -p 5666 -c check_mountpoints } define service { use generic-service name check_mountpoints host_name example.com service_description Check_mountpoints for nfs cifs davfs check_command check_nrpe!check_mountpoints contact_groups linux-admins }
在我设置的远程主机上
command[check_mountpoints]=/usr/lib/nagios/plugins/check_mountpoints.sh /nas1/home
为了validation命令输出是否正确,
[root@nas ~]# /usr/lib/nagios/plugins/check_mountpoints.sh /nas1/home OK: all mounts were found ( /nas1/home) [root@nas ~]#
Nagios监视器主机和远程主机都有一个正在运行的NRPE守护程序。
题
我如何debugging这样的东西?
根据我的经验,这个错误是由于缺less权限造成的。 您尝试以root身份执行nrpe客户端脚本。 尝试执行它作为nrpe守护进程正在运行的用户。 这应该给你一个暗示的原因。 如果这没有帮助,请尝试运行
strace usr/lib/nagios/plugins/check_mountpoints.sh /nas1/home
作为nrpe用户。
我有同样的问题,很多时候是许可。 设置权限或使用sudoers解决它。
尝试使用nrpe / nagios用户(su – npe)login并尝试运行该命令。
其他可能性是selinux,尝试禁用是testing:
echo 0 > /selinux/enforce
要解决这个问题,而不使nagios插件世界可读和/或世界可执行,请将nrpe用户添加到nagios组。