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

Эскалация уведомлений Nagios

У меня правильно настроен Nagios, и я хочу делать некоторые (незначительные) странные вещи с уведомлениями.

Мы хотим, чтобы первые три уведомления отправлялись с интервалом в 5 минут, затем, если никто не отвечает, следующие 3 с интервалом в 30 минут и далее с интервалом в 60 минут. У меня все это тоже работает нормально.

Последняя часть того, что я хочу сделать, - это то, где возникает проблема. Я хочу, чтобы эти повторяющиеся уведомления НЕ отправлялись в течение ночи (с 23:00 до 08:00), но для всех НОВЫХ уведомлений они ДОЛЖНЫ отправляться. Что происходит, так это то, что для третьей эскалации (60-минутной) нормально работает до 23:00, а затем она возвращается на 5-минутный уровень, потому что это за пределами escalation_period Я установил.

Я думал, что смогу обойти это, установив другой период эскалации, который будет работать в «ночные» часы, но это тоже не сработало. Вот что у меня есть для конфига:

define service{
        use                             generic-service
        host_name                       mercury
        service_description             ROB_TEST2
        check_command                   check_pop
        contact_groups                  robonly
        }

define serviceescalation{
        host_name                       mercury
        service_description             ROB_TEST2
        first_notification              3
        last_notification               5
        notification_interval           30
        contact_groups                  robonly
        }
define serviceescalation{
        host_name                       mercury
        service_description             ROB_TEST2
        first_notification              6
        last_notification               9999
        notification_interval           60
        contact_groups                  robonly
        escalation_period               daytime
        }
define serviceescalation{
        host_name                       mercury
        service_description             ROB_TEST2
        first_notification              6
        last_notification               9999
        notification_interval           60
        contact_groups                  nobody
        escalation_period               nighttime
        }

Есть предположения?

Думаю, сработает, если вы укажете срок на контакте. Определите контакт дважды: один раз с уведомлениями ночью и еще раз с уведомлениями только днем.

define service{
    use                             generic-service
    host_name                       mercury
    service_description             ROB_TEST2
    check_command                   check_pop
    contacts                        rob_daytime, rob_nighttime
    }

define serviceescalation{
    host_name                       mercury
    service_description             ROB_TEST2
    first_notification              3
    last_notification               5
    notification_interval           30
    contacts                        rob_daytime, rob_nighttime
    }

define serviceescalation{
    host_name                       mercury
    service_description             ROB_TEST2
    first_notification              6
    last_notification               9999
    notification_interval           60
    contacts                        rob_daytime
    }

define contact{
    contact_name                    rob_daytime
    service_notification_period daytime
    ...
    }

define contact{
    contact_name                    rob_nighttime
    service_notification_period nighttime
    ...
    }

Это должно дать вам хороший ночной сон, даже если эскалация продолжается уже несколько дней.

Заметка: Сам не тестировал ;-)

Быть очень будьте осторожны, если вы решите ограничить что-либо с помощью last_notification. По крайней мере, с известными мне версиями, переход к эскалации не сбрасывает этот счетчик, что относительно безвредно. Переходов с WARN на CRIT тоже не будет - что, как правило, заканчивается смертельным исходом.