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

Icinga: max_attempts против max_check_attempts

Определение службы в конфигурации Icinga или Nagios может иметь параметры, вызываемые max_attempts или max_check_attempts.

Документы описывают max_attempts так как:

Если вы настроили параметр max_attempts в определении службы на значение больше 1, Icinga повторно проверит службу, прежде чем решит, что существует реальная проблема. Пока служба перепроверяется (до max_attempts раз), она считается находящейся в "мягком" состоянии (как описано здесь), и проверки службы перепланированы с частотой, определяемой опцией retry_interval.

Если Icinga перепроверяет службу max_attempts раз, и она все еще находится в состоянии, отличном от OK, Icinga переведет службу в «жесткое» состояние, отправит уведомления контактам (если применимо) и начнет перепланировать будущие проверки службы в частота определяется опцией check_interval.

И max_check_attempts так как:

Когда служба впервые переходит из состояния ОК в состояние, отличное от ОК, Icinga дает вам возможность временно замедлить или ускорить интервал, с которым будут происходить последующие проверки этой службы. Когда служба впервые меняет состояние, Icinga выполнит до max_check_attempts-1 повторных попыток проверки службы, прежде чем решит, что это реальная проблема. Пока служба повторяется, она планируется в соответствии с параметром retry_interval, который может быть быстрее или медленнее, чем обычный параметр check_interval. Пока служба перепроверяется (до max_check_attempts-1 раз), служба находится в мягком состоянии. Если служба перепроверена max_check_attempts-1 раз, и она все еще находится в состоянии, отличном от ОК, служба переходит в жесткое состояние и впоследствии перепланировывается с нормальной скоростью, указанной параметром check_interval.

Кстати, если вы укажете значение 1 для параметра max_check_attempts, служба никогда не будет проверяться с интервалом, заданным параметром retry_interval. Вместо этого он немедленно переходит в жесткое состояние и впоследствии переносится со скоростью, указанной параметром check_interval.

Для меня это звучит как одно и то же. В чем разница между ними и когда их следует использовать?

max_attempts - это старое определение для сервисов и хостов, и оно больше не используется в ядре nagios 4. Посмотрите это, чтобы узнать возможные определения для ваших объектов: Определение объектов

С Icinga2

# icinga2 -V
icinga2 - The Icinga 2 network monitoring daemon (version: r2.6.3-1)

Использование max_attempts в сервисе вызывает ошибку:

Декларация услуги:

object Service "Intel(R) 82574L Gigabit Network Connection" {
  import "generic-service"
  host_name = "server"
  check_command = "check_netint"
  vars.interface = "Intel(R) 82574L Gigabit Network Connection"
  vars.warning= "650000"
  vars.critical ="800000"
  max_attempts=1
}

Проверка конфигурации:

# service icinga2 checkconfig
[....] checking Icinga2 configuration
information/cli: Icinga application loader (version: r2.6.3-1)
information/cli: Loading configuration file(s).
information/ConfigItem: Committing config item(s).
critical/config: Error: Attribute 'max_attempts' does not exist.
Location: in /etc/icinga2/conf.d/1.conf: 32:3-32:16
/etc/icinga2/conf.d/1.conf(30):   vars.warning= "650000"
/etc/icinga2/conf.d/1.conf(31):   vars.critical ="800000"
/etc/icinga2/conf.d/1.conf(32):   max_attempts=1
                                   ^^^^^^^^^^^^^^
/etc/icinga2/conf.d/1.conf(33): }
/etc/icinga2/conf.d/1.conf(34): /*

critical/config: 1 error
[FAIL] checking Icinga2 configuration. Check '/var/log/icinga2/startup.log' for details. ... failed!