У меня есть требование, при котором интервал проверки составляет 180 минут, а интервал уведомления - 10 минут. Означает, что владелец службы хочет, чтобы в случае пропуска какого-либо предупреждения, которое обычно приходит через 180 минут, если обслуживание критично, Icinga продолжает проверять и информировать их каждые 10 минут, пока служба не вернется в нормальное состояние.
Я попытался interval = 0
параметр в notification.conf, но он не соответствует требованиям.
Он отправляет предупреждение каждые 10 минут, если служба не в порядке, но не проверяет службу.
Например, если обслуживание вернется в нормальное состояние до 180 минут (т. е. до следующей проверки), он будет продолжать выдавать предупреждения до следующей проверки.
Нашел аналогичный вопрос здесь но это для Nagios, и я не могу объединить его с Icinga2.
Я уверен, что это будет сделано с помощью CHANGE_NORMAL_SVC_CHECK_INTERVAL
параметр, но не знаю, как его реализовать.
Я также нашел ниже страницу Icinga:
Ссылка на внешние команды Icinga
Пожалуйста, помогите.
Вот что я сделал, чтобы решить свою проблему.
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 минут, когда обслуживание критично.