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

Директива Nagios 'exclude' не исключает таймфреймы

Я попытался настроить установку nagios, чтобы проверить доступность службы SMTP вне его резервные часы. К сожалению, похоже, что эта конфигурация игнорируется:

# a timeperiod to check only outside of zimbra's backup hour
# (combining the first with the second timeperiod)
define timeperiod {
    timeperiod_name     zimbra-backups
    alias               When zimbra is being backed up
    sunday              04:00-05:00
    monday              04:00-05:00
    tuesday             04:00-05:00
    wednesday           04:00-05:00
    thursday            04:00-05:00
    friday              04:00-05:00
    saturday            04:00-05:00
}
define timeperiod {
    timeperiod_name     always-except-zimbra-backups
    alias               24x7 except backup time
        sunday          00:00-24:00
        monday          00:00-24:00
        tuesday         00:00-24:00
        wednesday       00:00-24:00
        thursday        00:00-24:00
        friday          00:00-24:00
        saturday        00:00-24:00
    exclude             zimbra-backups
}

Что затем используется с новым хостом:

define host {
    host_name               mailserver-except-backups
    alias                   mail server (outside backup hours)
    address                 yaddayadda
    notification_options        d,u,r,f
    use                     my-default-host
    check_period            always-except-zimbra-backups
    }
define service {
    host_name                   mailserver-except-backups
    service_description         SMTP service
    check_command               check_smtp!-t 30
    use                         my-default-service
    check_interval              2
    retry_interval              1
    }

Я не вижу, что не так ... есть подсказка? Вот одно из уведомлений по электронной почте

***** Nagios *****

Notification Type: PROBLEM

Service: SMTP service
Host: mail server (outside backup hours)
Address: yaddayadda
State: CRITICAL

Date/Time: Sat Apr 27 04:03:16 CEST 2013

Additional Info:

Connection refused

Nagios - это Core 3.3.1, работающий на OpenBSD 5.2.

Проверки хоста и проверки служб почти полностью не связаны, за исключением неявной зависимости службы от связанного с ней узла.

Вы настроили проверка хоста для вашего настраиваемого периода времени, но проверка службы использует тот период, который указан в шаблоне, который она использует. Добавьте check_period в определение службы, чтобы исправить это.

В качестве альтернативы вы можете использовать свой настраиваемый период времени в качестве параметра notification_period для службы, если вы просто хотите подавить уведомления во время резервного копирования.

Кроме того, не то, чтобы исключения может быть сломан в 3.3.x, как отмечено в этой строке из История версий Nagios ниже 3.2.0:

Известная проблема: проверки служб, определенные с периодами времени, содержащими директивы «exclude», неправильно переназначаются. Не используйте их сейчас - мы исправим это в версии 3.4.

... так что вы можете захотеть обновиться до 3.4.x или 3.5.0 (последняя на момент написания).

Я не могу это проверить прямо сейчас, но думаю check_period ибо услуга унаследована от my-default-service и отменяет check_period из определения хоста.

И я также считаю, что в этот интервал лучше подавлять только уведомления.

Может тебе стоит просто изменить notification_period . Вы по-прежнему будете получать предупреждение на вашем интерфейсе nagios, но в эти часы никаких уведомлений не будет.