我在使用 Nagios 时遇到了一个非常奇怪的问题。出于某种原因,check_apt 似乎失败了,但我不知道为什么。它表现得好像根本没有运行检查。
我在开发箱上运行了 nrpe,其他所有检查都运行正常。在安装了 nagios 的箱上,定义如下。
define service{
use generic-service
host_name development
service_description APT
check_command check_nrpe!check_apt
}
在“开发”中,nrpe.cfg 包含以下行。
command[check_apt]=/usr/lib/nagios/plugins/check_apt -n
此外,如果我在安装了 Nagios 的盒子上执行以下操作,它就会起作用!
/usr/lib/nagios/plugins/check_nrpe -H development -c check_apt
返回
APT OK: 0 packages available for upgrade (0 critical updates).
那么,这里出了什么问题?其他 NRPE 插件似乎运行良好,只有 APT 似乎失败了,在盒子上手动运行它似乎有效。有什么建议吗?
答案1
我发现的问题在于服务描述,尽管我认为 Nagios 中存在错误或未指定选项。调试输出显示实际命令行正在运行到 NRPE
/usr/lib/nagios/plugins/check_nrpe -H server.mechsoft-vps1.com -c check_mysqld -a
这里的问题是 -a 需要一个参数。但是检查不需要。更改服务定义以添加参数可以解决问题。
define service{
use generic-service
host_name development
service_description APT
check_command check_nrpe!check_apt!1
}
答案2
尝试在开发主机上的 nrpe 配置文件 nrpe.conf 中启用调试。设置 debug=1,如果作为守护进程运行,则重新启动 nrpe,并检查 /var/log/messages 或 nagios 日志文件中是否有错误。您可以从 Nagios Web 界面安排对 check_apt 命令的即时检查。
还可以尝试以“正确”的用户身份从控制台运行,不是以 root 身份,而是以 nagios 用户身份。或者您的 nagios 是以 root 身份运行的?在我们的系统中,nagios 以用户 nagios 身份运行。
如果您的 nagios 在 nagios 用户下运行,请尝试:
su-c'/usr/lib/nagios/plugins/check_nrpe-H开发-c check_apt'nagios
理查德