Допустим, у меня есть клиент nagios . У него запланированное время простоя с 8:00 понедельника до 8:00 вторника, и машина выключена на все время.

Есть сервисная проверка, которую он выполняет один раз в день

check_interval      1440

Допустим, проверка запланирована на 8 вечера. Итак, в понедельник в 8 часов вечера происходит проверка, и она не проходит, и nagios ничего не делает из-за запланированного простоя.

Вторник в 8 утра. Машина возвращается. Но эта одна служба останется в CRITICAL состоянии до 8 вечера, когда произойдет следующая запланированная проверка.

Есть ли какой-нибудь способ, которым я могу сказать nagios «Сохраняйте check interval 1440 ; но если вы видите, что машина выключается и снова поднимается, то выполните повторную проверку независимо от интервала»?

1 ответ1

0

Я получил ответ с другого форума.

Я прикрепил обработчик событий (TIL) к своему хост-объекту:

define host{
    use     linux-server    ; Inherit default values from a template
    host_name   volvo      ; The name we're giving to this host
    alias       volvo  ; A longer name associated with the host
    event_handler       host_state_change
    }

Связал мое новое имя обработчика событий с сценарием оболочки

define command{
        command_name    host_state_change
        command_line    $USER1$/eventhandlers/hostup.sh $HOSTNAME$ $HOSTSTATE$
    }

И создал сценарий, который проверяет, что является новым состоянием (то есть оно изменилось с ВНИЗ на ВВЕРХ, поэтому я ищу ВВЕРХ) и принудительно проверяет сервис через командный файл

    printf "[%lu] SCHEDULE_FORCED_SVC_CHECK;$hostname;serial_number;$NOW\n" $NOW > $COMMANDFILE

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .