Nagios: код возврата 7 находится за пределами - PullRequest
0 голосов
/ 03 декабря 2018

Службы запущены и работают на удаленных узлах.Выполнение CLI возвращает OK, но в пользовательском интерфейсе возвращает CRITICAL с информацией о состоянии: «Код возврата 7 находится за пределами»

nagios-xxxxxxxx:~# /usr/lib/nagios/plugins/check_tcp -H hostname -p <port> -w 5 -c 10 -t 60

TCP OK - 0.002 second response time on hostname port XXXXXXX|time=0.001642s;5.000000;10.000000;0.000000;60.000000

Можеткто-нибудь поможет мне исправить это?

Журнал Nagios:

[XXXXXXX] Warning: Return code of 7 for check of service 'XXXXXXX' on host was out of bounds. [XXXXXXX] Warning: Return code of 7 for check of service 'XXXXXXX' on host was out of bounds. [XXXXXXX] Warning: Return code of 7 for check of service 'XXXXXXX' on host was out of bounds. [XXXXXXX] Warning: Return code of 7 for check of service 'XXXXXXX' on host was out of bounds. [XXXXXXX] Warning: Return code of 7 for check of service 'XXXXXXX' on host was out of bounds.

Ответы [ 2 ]

0 голосов
/ 20 мая 2019

Я воспроизвел эту проблему на своих системах.У меня 620 хостов, 7000 сервисов.Когда количество сервисов превышает 6189, все плагины становятся непригодными для использования с «кодом возврата 7 из границ», даже если есть только команда / bin / true.

Основное решение - установить в nagios.cfg:

enable_environment_macros=0

Я давно не хотел этого делать, потому что у меня есть один из плагинов, который использует переменные nagios ENV при создании электронной почты HTML для уведомлений.Но я нашел это решение для его работы, вам нужно вручную установить необходимый ENV для конкретного плагина следующим образом:

define command{
 command_name    notify-html-service
 command_line NAGIOS_NOTIFICATIONTYPE='$NOTIFICATIONTYPE$' NAGIOS_SERVICEATTEMPT='$SERVICEATTEMPT$' NAGIOS_SERVICESTATE='$SERVICESTATE$'  NAGIOS_CONTACTGROUPNAME='$CONTACTGROUPNAME$' NAGIOS_HOSTNAME='$HOSTNAME$' NAGIOS_SERVICEDESC='$SERVICEDESC$' NAGIOS_LONGSERVICEOUTPUT='$LONGSERVICEOUTPUT$' NAGIOS_HOSTADDRESS='$HOSTADDRESS$' NAGIOS_HOSTGROUPNAMES='$HOSTGROUPNAMES$' NAGIOS_HOSTALIAS='$HOSTALIAS$' NAGIOS_SERVICEOUTPUT='$SERVICEOUTPUT$' NAGIOS_LONGDATETIME='$LONGDATETIME$' NAGIOS_SERVICEDURATION='$SERVICEDURATION$' NAGIOS_NOTIFICATIONRECIPIENTS='$NOTIFICATIONRECIPIENTS$' NAGIOS_SERVICEGROUPALIAS='$SERVICEGROUPALIAS$' NAGIOS_HOSTALIAS='$HOSTALIAS$' NAGIOS_NOTIFICATIONAUTHOR='$NOTIFICATIONAUTHOR$' NAGIOS_NOTIFICATIONCOMMENT='$NOTIFICATIONCOMMENT$' NAGIOS_CONTACTEMAIL='$CONTACTEMAIL$' NAGIOS_SERVICEATTEMPT='$SERVICEATTEMPT$' /usr/bin/perl '$USER7$/send.notify' http://192.168.1.1/nagios 2>/tmp/send.log
}
define command{
 command_name    notify-html-host
 command_line NAGIOS_NOTIFICATIONTYPE='$NOTIFICATIONTYPE$' NAGIOS_HOSTSTATE='$HOSTSTATE$' NAGIOS_CONTACTGROUPNAME='$CONTACTGROUPNAME$' NAGIOS_HOSTNAME='$HOSTNAME$' NAGIOS_HOSTADDRESS='$HOSTADDRESS$' NAGIOS_HOSTGROUPNAMES='$HOSTGROUPNAMES$' NAGIOS_HOSTALIAS='$HOSTALIAS$' NAGIOS_LONGDATETIME='$LONGDATETIME$' NAGIOS_NOTIFICATIONRECIPIENTS='$NOTIFICATIONRECIPIENTS$' NAGIOS_SERVICEGROUPALIAS='$SERVICEGROUPALIAS$' NAGIOS_LONGHOSTOUTPUT='$LONGHOSTOUTPUT$' NAGIOS_HOSTALIAS='$HOSTALIAS$' NAGIOS_HOSTOUTPUT='$HOSTOUTPUT$' NAGIOS_HOSTDURATION='$HOSTDURATION$' NAGIOS_NOTIFICATIONAUTHOR='$NOTIFICATIONAUTHOR$' NAGIOS_NOTIFICATIONCOMMENT='$NOTIFICATIONCOMMENT$' NAGIOS_CONTACTEMAIL='$CONTACTEMAIL$' NAGIOS_SERVICEATTEMPT='' /usr/bin/perl '$USER7$/send.notify' http://192.168.1.1/nagios 2>/tmp/send.log
}

Это помогло мне.В начале это была одна команда для обоих уведомлений, с разными настройками ENV хоста / сервиса, предварительно настроенными nagios:

define command{
command_name    notify-html
command_line /usr/bin/perl $USER2$/send.notify http://192.168.1.1/nagios 2>/tmp/send.log
}

Кстати, документация nagios не рекомендует устанавливать enable_environment_macros = 1:

Включение этого является очень плохой идеей для всего, кроме очень маленьких установок, так как это означает, что плагины, сценарии уведомлений и обработчики событий могут исчерпать пространство среды.Это также приведет к значительному увеличению использования ЦП и памяти и резко сократит количество проверок, которые вы можете выполнить.

PS / Мой ответ был отредактирован из-за необходимостиКоманда split notify-html для notify-html-host и notify-html-service.Я начал получать неправильные уведомления хоста из-за ошибок с определениями макросов (служебные макросы отсутствуют в событиях уведомлений хоста), и мне пришлось отслеживать журнал отладки nagios и видеть множество сообщений «ПРЕДУПРЕЖДЕНИЕ: произошла ошибка при обработке макроса».Удачи.

0 голосов
/ 13 декабря 2018

Я исправил эти проблемы. На самом деле проблемы связаны с дублированными конфигурациями служб на сервере nagios: location :: / etc / nagios4 / objects / services /

Удалите настройки службы duplcate из местоположения и перезагрузите службу nagios.

Проблемы устранены.

...