NRPE:check_aacraid-使用过这个吗?

NRPE:check_aacraid-使用过这个吗?

我从这个 NRPE 测试中得到了同样的旧Unable to read output消息。我可以在这台机器上运行其他测试,也可以su - nagios -c "<path to check_aacraid>"在本地运行,而且它可以正常工作。

查看/var/log/messages表明该过程已打开并启动 - 但它似乎没有返回 NRPE 可以消化的任何消息。

我还可以使用什么来调试它?我已经设置好了debug = 1nrpe.cfg并且我已经将 nagios 设置sudoNOPASSWD:ALL。(是的,这是一个很大的安全漏洞。。我迫切希望让它工作)

两个系统(nagios 服务器和 NRPE 客户端)都是 CentOS 6.2。

编辑:
为了从 Nagios 服务器进行测试,我一直使用命令行:

/usr/local/nagios/libexec/check_nrpe -H <IP of nrpe machine> -c check_aacraid

如果我尝试check_userscheck_total_procs(NRPE 安装附带的默认值),则此操作可以正常工作。如果我将其中一个命令重命名为并将其与tostuff一起传递,它也可以正常工作。这使我相信问题不是服务器端 nagios。-ccheck_nrpe

在客户端,我所做的唯一更改NRPE.CFG(测试之外 - 参见上文)是添加一行:

command[check_aacraid]=/usr/local/sbin/check-aacraid.py

否则一切都是默认的。

我可以在以 身份登录时执行此命令,nagios也可以通过 执行su - nagios -c "cmd"

答案1

我想说的是,PATH交互式 shell 中的 很长,包含了check_aacraid所需的一切,但 NRPEPATH很短,缺少一些你需要的东西。选择你最喜欢的方法来增强PATHcheck_aacraid很有可能你所有的问题都会消失。

另外,NRPE 的一般诊断方法是查看strace -f -s 1024NRPE 服务器的 PID,然后观察会发生什么。通常,问题很明显。

答案2

脚本中的 sudo 可能失败,因为 NRPE 运行时它不在 tty 上。检查 /etc/sudoers 以查找:

Default requiretty

并将其注释掉。

答案3

问题原来出在 SELinux 上。当我“echo 0 /selinux/enforce”时,插件就可以正常工作。现在要弄清楚如何与系统协同工作,而不是绕过系统。

答案4

您可能已经尝试过此方法,但我在使用另一个插件时也遇到了同样的问题。我这边的解决方案是将此行添加到nrpe.cnf

command[check_aacraid]=sudo /usr/local/sbin/check-aacraid.py

sudoers文件中:

nagios ALL=NOPASSWD:/usr/local/bin/check-aacraid.py

除了您提到的默认注释掉之外,requiretty已经完成了。

相关内容