Мы используем icinga2 для мониторинга. У нас есть много служебных проверок, которые применяются динамически с помощью правил применения. Кроме того, эти службы применяются к хэш-карте экземпляров базы данных, находящихся на разных хостах. Короче говоря, имена наших служб определяются динамически, поэтому одним из них может быть, например, HOST!DBNAME-svcvheck
.
Таким образом, сценарий таков, что большинство этих служб зависят от базы данных, например, `HOST!DBNAME-tnsping". К сожалению, документации довольно просты и не включают динамическое создание ссылки на родительскую службу. Что я думаю, я хочу сделать что-то вроде этого:
apply Dependency "db-connectivity" to Service {
parent_service_name = "$host.name$!$service.vars.envname$-tnsping"
# also tried variants of this, e.g.
# parent_service_name = host.name + "!" + service.vars.envname + "-tnsping"
child_service_name = service.name
child_host_name = host.name
disable_checks = true
assign where "oracle-db-svc" in service.templates
}
В моем случае хост не имеет большого значения, потому что зависимости — это только службы, а child_host_name
— обязательное поле.
Что бы я ни делал, я не могу заставить его распознать родительскую службу. Например:
Error: Dependency 'scan-szepdb041x.myhost.org!UAT2-beqfilelast!db-connectivity' references a parent host/service which doesn't exist.
Правила обращения к другим объектным переменным при применении Dependency
кажутся немного отличными от применения службы.
Есть ли у кого-нибудь идеи или примеры динамического применения зависимостей служб к службам, которые были сгенерированы динамически?