我们已经在我们的服务器上运行了一段时间的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).
这不会发生,如果我直接在客户端上执行它。
我做了什么:
我在一个月前与其他服务器有同样的问题。 没有发现问题,并重新安装服务器。 现在工作。
有人有想法?
UPDATE
我想我find了,一个小时没有发生。
SIGPIPE是一个很好的提示,我假设系统不是与nagios。
我调整了openvzconfiguration和限制。 如果它保持稳定,我会报告回来。
我们遇到了一个类似的问题,通过一个容器中的NRPE检查一个服务返回了预期的WARNING ,然后几分钟后,同一个服务返回了CRITICAL和141 / SIGPIPE错误。 在接下来的检查中,它返回WARNING然后是CRITICAL ,然后是WARNING等等。
我对这个错误进行了stream量捕获,发现了Nagios问题#305,可以准确地描述我所观察到的情况。 这似乎是由于在使用SSL( SSL_shutdown() )时,在NRPE服务器端closures了不清洁的连接而导致它向客户端发送TCP RST,导致中止读取,从而导致SIGPIPE。
将附加到问题报告的补丁nrpe-ssl_shutdown-2.patch应用到NRPE源,重build和重新安装/重新启动它似乎停止了重复的问题,现在警报正常报告没有严重错误。
我们曾经有过几次这个问题。 这似乎是由插件意外死亡造成的。
我们采取的行动:
在他们之间,这似乎解决了这个问题。
141的退出代码对应于信号141-128 = 13。人7信号告诉我们信号13是SIGPIPE(即我们正在说话的过程消失)。 有一个关于这个与OpenVZ没有发送早期信号的bug报告https://bugzilla.openvz.org/show_bug.cgi?id=1901