Назад | Перейти на главную страницу

Nagios (код возврата 141 выходит за пределы) на случайных сервисах

У нас есть 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, восстановление и переустановка / перезапуск, казалось, остановили повторение проблемы, и теперь предупреждения сообщаются нормально, без критических ошибок.

У нас была эта проблема несколько раз; Похоже, это вызвано неожиданным завершением работы плагина.

Действия, которые мы предприняли:

  1. Увеличьте время ожидания плагина в Nagios до 120
  2. В некоторых сложных плагинах Perl отключен EPN (добавить во вторую строку скрипта #nagios: -epn)
  3. Если проверка использовала NRPE, гарантирует, что NRPE использует / dev / urandom, чтобы он никогда не блокировался из-за отсутствия энтропии
  4. Установите разумное время ожидания command_timeout (30 секунд) в nrpe.cfg
  5. Убедитесь, что на сервере Nagios достаточно памяти / ЦП для одновременного выполнения всех проверок, которые должны выполняться.

Между ними это, казалось, решило проблему.

Код выхода 141 соответствует сигналу 141 - 128 = 13. Сигнал man 7 сообщает нам, что сигнал 13 - это SIGPIPE (т.е. процесс, с которым мы разговаривали, ушел). Есть отчет об ошибке, связанный с тем, что OpenVZ не отправляет более ранние сигналы на https://bugzilla.openvz.org/show_bug.cgi?id=1901