У нас есть Nagios, работающий на одном из наших серверов какое-то время без каких-либо проблем, но в последнее время мы получаем (код возврата 141 выходит за пределы).
Нагрузка на сервер выросла, потому что мы подключились к сети с нашим сервисом, но она все еще не очень высокая (максимальная средняя нагрузка: 0,7). Перед запуском все в Nagios работает нормально.
Смотрите на изображении, Current Load возвращает код 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).
Этого не происходит, если я выполняю его непосредственно на клиенте.
Что я наделал:
Несколько месяцев назад у меня была такая же проблема с другим сервером. Не обнаружил проблему и переустановил сервер. Работает сейчас.
Кто-то с идеей?
ОБНОВИТЬ
Я думаю, что нашел, не происходило уже час.
SIGPIPE был хорошим советом, я предполагал что-то с системой, а не с nagios.
Я настроил конфигурацию openvz и ограничения. Я сообщу, если он останется стабильным.
У нас была аналогичная проблема, когда одна служба, проверенная через NRPE в контейнере, вернула ожидаемый WARNING
, затем через несколько минут вернулась та же услуга CRITICAL
с ошибкой 141 / SIGPIPE. При следующей проверке вернулось WARNING
затем CRITICAL
, затем WARNING
и так далее.
Я проверил трафик для ошибки и обнаружил Nagios, выпуск # 305 чтобы довольно точно описать то, что я наблюдал. Похоже, это вызвано закрытым нечистым соединением на стороне сервера NRPE при использовании SSL (SSL_shutdown()
), что заставляет его отправлять клиенту TCP RST, что вызывает прерывание чтения и, следовательно, SIGPIPE.
Применение патча nrpe-ssl_shutdown-2.patch
приложенный к отчету о проблеме к источнику NRPE, восстановление и переустановка / перезапуск, казалось, остановили повторение проблемы, и теперь предупреждения сообщаются нормально, без критических ошибок.
У нас была эта проблема несколько раз; Похоже, это вызвано неожиданным завершением работы плагина.
Действия, которые мы предприняли:
Между ними это, казалось, решило проблему.
Код выхода 141 соответствует сигналу 141 - 128 = 13. Сигнал man 7 сообщает нам, что сигнал 13 - это SIGPIPE (т.е. процесс, с которым мы разговаривали, ушел). Есть отчет об ошибке, связанный с тем, что OpenVZ не отправляет более ранние сигналы на https://bugzilla.openvz.org/show_bug.cgi?id=1901