Nagios проверяет частоту обслуживания на основе статуса обслуживания

9

Я пытаюсь обнаружить перегрузку диска с помощью мониторинга si, поэтому с помощью команды vmstat. Я отслеживаю другие сервисы, используя nagios, и проверка сервисов происходит каждые 5 минут. Для этой службы уничтожения я хочу, чтобы nagios проверял ее через каждые 20 минут, и если возвращенное состояние не в порядке (т.е. предупреждение или критическое состояние), то служба проверки молотилки должна проверяться через каждые 3 минуты, пока состояние, возвращаемое службой, не станет ОК. Время проверки сервиса для всех остальных сервисов остается неизменным.

Я новичок в Nagios, и любая помощь в этом будет очень признательна.

АПЗ
источник

Ответы:

14

Предполагая, что interval_lengthдиректива по умолчанию установлена ​​на 60:

$ grep interval_length /usr/local/nagios/etc/nagios.cfg 
# This value works of the interval_length you specify later.  If you leave
# actual seconds rather than a multiple of the interval_length variable.
interval_length=60

Для специальных служб вам необходимо определить другой шаблон для него в /usr/local/nagios/etc/objects/templates.cfg:

define service{
        name                            special-service    
        ...
        max_check_attempts              3           
        normal_check_interval           20         
        retry_check_interval            3           
        notification_interval           60   
        ...   
        }

Обратите внимание на:

  • normal_check_interval: эта услуга проверяется каждые 20 минут в нормальных условиях
  • retry_check_interval: количество минут ожидания перед планированием повторной проверки, когда служба перешла в состояние не в порядке. Обратите внимание, что если служба была повторно запущена max_attemptsбез изменения ее статуса, она вернется к запланированной с check_intervalчастотой.

и используйте этот шаблон для вашего сервиса:

define service{
    use                     special-service
    host_name               xx
    service_description     yy
    check_command           zz
    contact_groups          admins
    }

Вам также может понадобиться определить эскалацию службы, чтобы изменить ее в notification_intervalзависимости от состояния службы, например:

define serviceescalation{
    host_name               xx
    service_description     yy
    last_notification       0
    notification_interval   10
    escalation_options      [w,u,c]
    contact_groups          admins
    }

Это означает, что это расширение службы используется, когда служба находится в состоянии WARNING, UNKNOWN или CRITICAL. И теперь у вас есть новые интервалы уведомления: 10 минут.

кванты
источник