随机服务上的 Nagios(返回码 141 越界)

Por*_*net 5 linux monitoring debian nagios openvz

我们让 Nagios 在我们的一台服务器上运行一段时间没有任何问题,但最近我们得到了(返回代码 141 超出范围)。

由于我们使用我们的服务上线,服务器上的负载增加了,但它仍然不是很高(负载平均最大值:0.7)。在发布之前,Nagios 中的一切正常。

请参阅图像,当前负载返回代码 141。2 分钟前 Beancounters VZ 返回 141。这种情况不规则发生。只有 HTTP 和 PING 不返回 141,它们不会在 nrpe 上中继。

http://pic-hoster.net/view/45030/ScreenShot2012-05-28at5.31.35PM.png

我注意到,如果我从 Nagios 主机对有问题的客户端执行命令,有时返回会丢失:

root@xxx23:/usr/local/nagios/libexec# ./check_nrpe -H 123.123.123.123 -c check_apt 
APT OK: 0 packages available for upgrade (0 critical updates). 
root@xxx23:/usr/local/nagios/libexec# ./check_nrpe -H 123.123.123.123 -c check_apt 
root@xxx23:/usr/local/nagios/libexec# ./check_nrpe -H 123.123.123.123 -c check_apt 
APT OK: 0 packages available for upgrade (0 critical updates). 
Run Code Online (Sandbox Code Playgroud)

如果我直接在客户端上执行它,则不会发生这种情况。

我做了什么:

  • 我为这个容器增加了 OpenVZ 内存和 CPUUnit。
  • 我更新到最新的 Nagios 3.4.1(来自源代码)
  • 我通过 nrpe 在本地执行了 Nagios 检查 - 从来没有得到 141 回来之类的

一个月前我在另一台服务器上遇到了同样的问题。还没发现问题,重装了服务器。现在工作。

有人有想法吗?

更新

我想我找到了,已经一个小时没有发生了。

SIGPIPE 是一个很好的提示,我假设系统中有一些东西而不是 nagios。

我调整了 openvz 配置和限制。如果它保持稳定,我会回来报告。

Ste*_*way 1

我们曾多次遇到过这个问题;这似乎是由插件意外死亡引起的。

我们采取的行动:

  1. 将 Nagios 中的插件超时增加到 120
  2. 在一些复杂的 Perl 插件上,禁用 EPN(添加到脚本 #nagios:-epn 的第二行)
  3. 在检查使用 NRPE 的情况下,确保 NRPE 使用 /dev/urandom,这样它就不会因为缺乏熵而阻塞
  4. 在nrpe.cfg中设置合理的command_timeout(30秒)
  5. 确保 Nagios 服务器有足够的内存/CPU 来运行需要同时运行的所有检查。

他们之间,这些似乎解决了问题。