Nagios 没有从插件返回数据,仅 check_apt 返回

Nagios 没有从插件返回数据,仅 check_apt 返回

我在使用 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

理查德

相关内容