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