Назад | Перейти на главную страницу

Переопределить неявно унаследованный сервис в 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
}

Я решил, что моя конфигурация слишком сложна, поэтому я просто удалил неявно унаследованные службы, которые я хотел переопределить, и определил их отдельно для каждой группы хостов, чтобы уменьшить сложность. Так легче обслуживать.