Мы используем 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
, похоже, немного отличаются от применения Сервиса.
Есть ли у кого-нибудь идеи или примеры динамического применения сервисных зависимостей к сервисам, которые были созданы динамически?