Запуск Nagios Core 4.0.2 и использование последней версии NRPE на клиентах.
У нас есть 3 определения сервисов для проверки одного программного обеспечения на разных уровнях каждую минуту:
При неудачном состоянии любой из этих проверок мы вызываем event_handler для перезапуска службы до 3 раз. Если состояние не в порядке после 3, то увеличьте.
Проблема в том, что существует ряд комбинаций, при которых в случае отказа одной службы ожидается, что другая будет в КРИТИЧЕСКОМ состоянии. Если у нас есть event_handler для каждого из них и два не работают, то скрипт перезапуска через event_handler будет вызываться дважды.
Вопрос: Как мы можем гарантировать, что обработчик событий вызывается только одной неудачной проверкой службы, а не для каждой отказавшей службы из 3, что приводит к 2 или более перезапускам, когда их состояние меняется на КРИТИЧЕСКИЙ? например если 3 проверки служб входят в КРИТИЧЕСКИЙ, то это будет 3 перезапуска за 1 минуту и 6 перезапусков за 2 минуты (при условии, что перезапуск не смог вернуть службы в состояние ОК).
Я считаю, что зависимости сервисов могут быть правильным решением, но я не уверен, как их создавать, чтобы удовлетворить различные условия.
Зависимости служб - это способ сделать это.
Вы хотите, чтобы проверка службы уровня приложения зависела от проверки выполнения процесса.
Вы хотите, чтобы проверка выполнения процесса зависела от проверки порта TCP.
Вы хотите, чтобы все это зависело от хозяин (не служебная) проверка - это касается сценария отказа "состояния сети".
Они могут очень быстро усложниться, но основная идея такова:
define servicedependency{
host_name TheServer
service_description The Service I Depend On
dependent_host_name TheServer
dependent_service_description The Dependent Service
execution_failure_criteria n
notification_failure_criteria w,u,c
}
Execution_failure_criteria действительно является здесь рабочей лошадкой: в нем перечислены состояния, которые могут быть задействованы в главной службе для этой службы не для проверки (в этом случае, если служба "The Service I Depend On" находится в состоянии "notify". Вы можете указать несколько параметров (как в строке ниже).
Вот хорошее объяснение параметров конфигурации nagios. http://nagios.frank4dd.com/docs/en/objectdefinitions.html#servicedependency