我们正在使用 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.
应用 a 时引用其他对象变量的规则Dependency
似乎与应用 Service 有点不同。
有没有人有任何想法或示例将服务依赖项动态应用于动态生成的服务?