Я пытаюсь отключить проверку 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