Динамическая установка параметра check_interval на основе Service_State в Icinga2
У меня есть требование, где интервал проверки составляет 180 минут, а интервал уведомления - 10 минут. Означает, что владелец сервиса хочет, если он пропустит какое-либо предупреждение, которое обычно приходит через 180 минут, если обслуживание является критическим, то Icinga продолжает проверять и информировать их каждые 10 минут, пока сервис не вернется в нормальное состояние.
Я старался interval = 0
параметр в tification.conf, но это не соответствует требованию.
Он отправляет оповещение каждые 10 минут, если служба не в порядке, но не проверяет службу.
Например, если обслуживание приходит в норму до 180 минут (т.е. при следующей проверке), оно будет продолжать оповещение до следующей проверки.
Нашел похожий вопрос здесь, но это для Nagios, и я не могу объединить его с Icinga2.
Я уверен, что это будет сделано с помощью CHANGE_NORMAL_SVC_CHECK_INTERVAL
параметр, но не знаю, как его реализовать.
Я также нашел ниже страницы Icinga:
Пожалуйста, помогите.
1 ответ
Это то, что я сделал, чтобы решить мою проблему.
1. Создан скрипт/icinga/plugins/change_check_interval.sh
#!/bin/bash
now=`date +%s`
commandfile='/var/run/icinga2/cmd/icinga2.cmd'
case "$1" in
OK)
/usr/bin/printf "[%lu] CHANGE_NORMAL_SVC_CHECK_INTERVAL;servername;servicename;180\n" $now >> $commandfile
;;
WARNING)
;;
UNKNOWN)
;;
CRITICAL)
/usr/bin/printf "[%lu] CHANGE_NORMAL_SVC_CHECK_INTERVAL;servername;servicename;10\n" $now >> $commandfile
;;
esac
exit 0
2. Затем использовал этот скрипт, чтобы определить event_command в commands.conf
object EventCommand "change_check_interval"{
import "plugin-event-command"
command = [ "/icinga/plugins/change_check_interval.sh", "$service.state$" ]
}
3. И использовал event_command в services.conf
apply Service "Service-Name" {
import "template"
check_command = "nrpe-arg"
vars.remote_nrpe_command = "nrpe command"
vars.remote_nrpe_arguments = "arg1"
event_command = "change_check_interval"
assign where host.name == "servername"
}
Этот обработчик событий запускается каждые 180 минут, когда служба исправна, и каждые 10 минут, когда служба критична.