在 Icinga 中覆盖隐式继承的服务

在 Icinga 中覆盖隐式继承的服务

我有一个主机组 A,使用其服务模板中的指令为其定义了多项服务hostgroup_name。在其他几个主机组中,主机也是主机组 A 的成员,其中有一个主机组我想覆盖它从主机组 A 隐式继承的一项服务。这可能吗?

我尝试使用相同的服务描述为该特定主机组定义服务,但没有效果。

我还尝试从我提到的服务模板中排除主机组,但没有成功。我想要覆盖服务的主机组是在服务模板之后定义的,因此!hostgroup-b无法扩展。

有没有简单的解决方案,或者我应该重新组织我的配置?


例子:

# hostgroup-a.cfg

# hostgroup A
define hostgroup {
        hostgroup_name hostgroup-a
}

define host {
        name host-a
        register 0
        use linux-server
        hostgroups hostgroup-a
}

# service template for services for hostgroup A
define service {
        name hostgroup-a-service
        register 0
        use generic-service
        hostgroup_name hostgroup-a
}

# PING example service
define service {
        use hostgroup-a-service
        service_description PING
        check_command check-host-alive
}

对于以下主机组,我想删除或覆盖PING从隐式继承的服务hostgroup-a

# hostgroup-b.cfg

# hostgroup b
define hostgroup {
        hostgroup_name hostgroup-b
}

define host {
        name host-b
        use host-a
        register 0
        hostgroups +hostgroup-b
}

答案1

我认为我的配置太复杂了,所以我删除了我想要覆盖的隐式继承的服务,并为每个主机组单独定义它们以降低复杂性。这样更容易维护。

相关内容