因此,我尝试在 Red Hat 服务器上设置 Nagios check_load 服务。我按照 Red Hat 的文档安装了 NRPE 客户端:https://access.redhat.com/documentation/en-US/Red_Hat_Enterprise_Linux_OpenStack_Platform/3/html/Installation_and_Configuration_Guide/Installing_and_Configuring_NRPE.html
在 Nagios GUI 上,我得到了这个:
CHECK_NRPE: Error receiving data from daemon.
但是当我登录到 Nagios 服务器进行调试时,看起来我可以从终端运行这个程序:
root@portalmon:/Nagios# /usr/local/nagios/libexec/check_nrpe -H 10.0.XX.XXX -c check_load -t 30
OK - load average: 0.15, 0.10, 0.04|load1=0.150;15.000;30.000;0; load5=0.100;10.000;25.000;0; load15=0.040;5.000;20.000;0;
所以我不认为这是权限问题。我认为这是某种路径问题,但我不明白为什么它不起作用。有人能帮忙吗?
这是我的服务描述:
define service{
use dev-service
host_name [DEV] Luminis Admin DEV Portal
service_description CPU-Load
check_command check_nrpe!"check_load"
}
我想知道当我运行上述终端命令时是否正在调用相同的服务。
编辑:我找到了问题所在。现在正在研究解决方案。我将 Nagios 更改为调试模式,通过查看 /usr/local/nagios/var/nagios.debug,我意识到正在运行的命令是
/usr/local/nagios/libexec/check_nrpe -n -t 60 -H <hostname> -c check_load
代替
/usr/local/nagios/libexec/check_nrpe -H 10.0.XX.XXX -c check_load -t 30
因此,有些东西附加了“-n”,这导致了问题。第二个命令返回我想要的结果,但第一个命令返回
CHECK_NRPE: Error receiving data from daemon.
编辑2:我已经弄明白了,但我的声誉不足以将其作为有效答案提交,所以下面是我输入的内容。
我能够解决我的问题。这就是我所做的。
- 在Nagios.cfg中,我打开了调试模式并找到了调试文件的位置。
- 在跟踪调试日志时复制了该问题。发现 Nagios 执行的命令与我预期的不同。它附加了 No SSL 标志 (-n)。
- 在commands.cfg中,我搜索了check_nrpe。发现它正在使用-n执行命令。还有另一个名为check_secure_nrpe的命令,它在不使用-n标志的情况下运行check_nrpe。
- 编辑我的服务描述以使用 check_secure_nrpe 而不是 check_nrpe。
- 重新启动 Nagios。
该服务现在按预期运行。
答案1
我能够解决我的问题。这就是我所做的。
- 在Nagios.cfg中,我打开了调试模式并找到了调试文件的位置。
- 在跟踪调试日志时复制了该问题。发现 Nagios 执行的命令与我预期的不同。它附加了 No SSL 标志 (-n)。
- 在commands.cfg中,我搜索了check_nrpe。发现它正在使用-n执行命令。还有另一个名为check_secure_nrpe的命令,它在不使用-n标志的情况下运行check_nrpe。
- 编辑我的服务描述以使用 check_secure_nrpe 而不是 check_nrpe。
- 重新启动 Nagios。
该服务现在按预期运行。
答案2
您的回答很有帮助,谢谢。
还有另一种解决方案。您可以编辑,并从命令中objects/commands.cfg
删除。-n
check_nrpe
这样你就可以继续check_nrpe
使用check_secure_nrpe