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

Отключаем проверку на одном хосте в icinga2

Я пытаюсь отключить проверку http для одного хоста в моей настройке icinga2. Я новичок в этом и просто хожу по кругу.

Я использую стандартную установку, и она успешно работает с рядом спутниковых устройств linux, но на некоторых из них нет запущенных веб-серверов, поэтому я хочу отключить проверку http.

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

Я добавил строку игнорирования в groups.conf для теста http, но когда я настроил конфигурацию хоста в repository.d / hosts / следующим образом

object Host "kvm3.infoteq.com.au" {
 import "satellite-host"
 check_command = "cluster-zone"
 vars.no_web_check = true
 }
}

Я получаю сообщение об ошибке, когда пытаюсь перезагрузить icinga2, говоря, что есть проблема с этой конфигурацией, Ошибка: вычисленное значение не используется.

Измененная строка http из файла groups.conf:

 object ServiceGroup "http" {
  display_name = "HTTP Checks"

  assign where match("http*", service.check_command)
  ignore where host.vars.no_web_check
}

Здесь я должен добавить эту проверку? Должен быть способ сделать это проще.

Для вашей службы я бы попытался использовать декларацию службы, а не группу обслуживания, например:

apply Service "Interface " for (interface_name => interface_config in host.vars.interfaces){
        import "generic-service"
        check_command = "check_netint_w2012_byifname"
        vars.interface = interface_name
        vars.warning= "650000"
        vars.critical ="800000"    
        vars.snmp_communaute = host.vars.snmp_communaute    
        vars += interface_config
        assign where host.name in ["server1", "server2", "server3"]

}

Эта услуга применяется ко всем хостам, имена которых указаны в assign декларация.

Ты можешь использовать ignore исключить некоторые хосты. Это синтаксис assign.

Можно не просто набор vars.web_check = false а затем в groups.conf:

assign where host.vars.web_check

который просто применит эту службу к хостам, где у вас только для web_check установлено значение true. Я думаю, это тоже должно сработать:

assign where match("http*", service.check_command) && host.vars.web_check