Nagios 尽管处于“严重”状态,但仍显示“正常”状态

Nagios 尽管处于“严重”状态,但仍显示“正常”状态

我正在使用 nagios 监控我们生产环境中的各种服务。但对于其中一项服务,我注意到尽管该服务已关闭且未运行,但 nagios 仍显示“OK”状态。我正在使用 check_http 插件来实现相同的效果。在服务器的 cli 上运行 check 命令时,我得到以下结果。我注意到返回的退出状态代码为 2,这表示 nagios 处于 CRITICAL 状态。但是,显示的状态却是“OK”。非常感谢任何有关如何处理此问题的指示。提前致谢。

我@我的服务器:~$ check_http -H localhost -p 8180 -u /SomeService/services?_wadl

连接被拒绝

HTTP 严重 - 无法打开 TCP 套接字

我@我的服务器:~$ echo $?

2

答案1

您的手动测试与 Nagios 所做的不匹配。

最有可能的是,您向 check_http 传递的 ARG 被忽略了。将您使用的服务 check_command 的命令定义与您的手动测试进行比较。

如果你还没有,请务必阅读宏及其工作原理

答案2

感谢 Keith 和 Daniel 的指点。我找到了解决问题的方法。

NConf 中配置的检查命令 URL 路径参数为

/SomeService/服务?_wadl&_type=xml

但是在检查服务器上的 /var/log/syslog 时,我发现实际执行的 URL 路径是 /SomeService/services?_wadl (请注意删除“type=xml”部分)。

在分别使用这两个 URL 路径运行 check 命令时,我注意到,我必须按“Enter”键才能获取包含“type=xml”的 URL 的命令的退出状态,这解释了为什么 nagios 从未获得退出状态 2。而另一个 URL 无需任何人工干预即可返回退出状态。

我@我的服务器:$ check_http -H localhost -p 8180 -u /SomeService/services?_wadl&_type=xml

[1] 3543

me@myserver:$ 连接被拒绝

HTTP 严重 - 无法打开 TCP 套接字

[按 Enter 键,然后我得到退出状态]

[1]+ 退出 2 check_http -H localhost -p 8180 -u /SomeService/services?_wadl

我@我的服务器:$ check_http -H localhost -p 8180 -u /SomeService/services?_wadl

连接被拒绝

HTTP 严重 - 无法打开 TCP 套接字

[我立即得到了退出状态,无需人工干预]

在将 Nconf 中的 URL 路径更改为 /SomeService/services?_wadl 后,我开始获得正确的退出状态,并且当服务实际关闭时,nagios 开始报告 CRITICAL。但我仍然想知道,当 URL 包含“&_type=xml”时,check_http 插件为什么会等待用户干预来返回退出代码?

相关内容