Уведомление Icinga2 только один раз при изменении состояния

Я настроил icinga2 для мониторинга нескольких служб с разными интервалами, поэтому одна служба может проверяться каждые 10 секунд. Если он выдает критическую ошибку, я получу уведомление, но я буду получать его каждые 10 секунд, если ошибка не устранена, или пока я не подтвержу ее. Я просто хочу получать его один раз для каждого изменения состояния. Затем, может быть, через определенное время снова, но это не так важно.

Вот моя конфигурация:

Это более или менее стандартный файл template.conf, но я добавил «интервал = 0 с», потому что я читал, что это должно предотвратить многократную отправку уведомлений.

template Notification "mail-service-notification" {
  command = "mail-service-notification"

  interval = 0s

  states = [ OK, Critical ]
  types = [ Problem, Acknowledgement, Recovery, Custom,
        FlappingStart, FlappingEnd,
        DowntimeStart, DowntimeEnd, DowntimeRemoved ]

  vars += {
    notification_logtosyslog = false
  }

  period = "24x7"
}

А вот часть уведомления.conf, которая включает в себя шаблон:

object NotificationCommand "telegram-service-notification" {
    import "plugin-notification-command"

    command = [ SysconfDir + "/icinga2/scripts/telegram-service-notification.sh" ]

    env = {
        NOTIFICATIONTYPE = "$notification.type$"
        SERVICEDESC = "$service.name$"
        HOSTNAME = "$host.name$"
        HOSTALIAS = "$host.display_name$"
        HOSTADDRESS = "$address$"
        SERVICESTATE = "$service.state$"
        LONGDATETIME = "$icinga.long_date_time$"
        SERVICEOUTPUT = "$service.output$"
        NOTIFICATIONAUTHORNAME = "$notification.author$"
        NOTIFICATIONCOMMENT = "$notification.comment$"
        HOSTDISPLAYNAME = "$host.display_name$"
        SERVICEDISPLAYNAME = "$service.display_name$"
        TELEGRAM_BOT_TOKEN = TelegramBotToken
        TELEGRAM_CHAT_ID = "$user.vars.telegram_chat_id$"
    }
}

apply Notification "telegram-icingaadmin" to Service {
    import "mail-service-notification"
    command = "telegram-service-notification"
    user_groups = [ "icingaadmins" ]
    assign where host.name
}

person ecrag    schedule 15.06.2018    source источник
comment
Вы получаете повторяющиеся КРИТИЧЕСКИЕ уведомления или также получаете уведомления о ВОССТАНОВЛЕНИИ?   -  person cflinspach    schedule 18.06.2018
comment
есть ли какой-нибудь конфиг с определением интервала, который вы загружаете? Это может перезаписать определение интервала вашей конфигурации почтового сервиса-уведомления? вы можете найти его, перейдя в каталог icinga (используя терминал) и используя команду grep -r "interval" (рекурсивный поиск любого вхождения интервала в каждом файле)   -  person eli    schedule 22.06.2018
comment
Я получаю только повторяющиеся КРИТИЧЕСКИЕ, без ПРЕДУПРЕЖДЕНИЯ, ВОССТАНОВЛЕНИЯ или ОК, они будут отправлены один раз.   -  person ecrag    schedule 26.06.2018
comment
Также у меня есть некоторые другие конфиги, использующие interval, generic-host/server в templates.conf, но для уведомлений у меня есть только тот, что указан выше.   -  person ecrag    schedule 26.06.2018


Ответы (1)


Я думаю, у вас была опечатка. Это должно работать, если вы установите interval = 0 (не "интервал = 0с").

После этого изменения вы должны перезапустить службу icinga.

person eli    schedule 19.06.2018
comment
Я попробовал оба и застрял с 0 в конце. Только с 0 тоже не получилось. - person ecrag; 21.06.2018