web-dev-qa-db-ja.com

Icingaで暗黙的に継承されたサービスをオーバーライドする

サービステンプレートでhostgroup_nameディレクティブを使用していくつかのサービスが定義されているホストグループAがあります。ホストがホストグループAのメンバーでもある他のいくつかのホストグループの中に、ホストグループAから暗黙的に継承するサービスの1つをオーバーライドしたいホストグループが1つあります。これは可能ですか?

同じサービスの説明でこの特定のホストグループのサービスを定義しようとしましたが、効果がありませんでした。

また、前述のサービステンプレートからホストグループを除外しようとしましたが、成功しませんでした。サービスをオーバーライドするホストグループはサービステンプレートの後に定義されているため、!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
}

次のホストグループでは、hostgroup-aから暗黙的に継承されたPINGサービスを削除またはオーバーライドしたいと思います。

# hostgroup-b.cfg

# hostgroup b
define hostgroup {
        hostgroup_name hostgroup-b
}

define Host {
        name Host-b
        use Host-a
        register 0
        hostgroups +hostgroup-b
}
2
lukad

構成が複雑すぎると思ったので、オーバーライドしたい暗黙的に継承されたサービスを削除し、複雑さを軽減するためにホストグループごとに個別に定義しました。このようにすると、保守が簡単になります。

0
lukad