У меня правильно настроен 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 тоже не будет - что, как правило, заканчивается смертельным исходом.