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

Есть ли способ исключить определенные хосты из группы хостов Nagios?

У меня есть сервер Nagios, который включает в себя множество hostgroups. Один из них hostgroups включить сервер, который я хотел бы исключить из проверки для одного конкретного Nagios Check но я хочу, чтобы он продолжал быть членом hostgroup так что его можно проверить на все остальные checks что hostgroup проверяется на наличие. Есть ли возможность exclude или что-то подобное, что может помочь мне достичь моей цели? Спасибо

Добавьте конкретный хост с ! префикс в определении услуги. Приведенная ниже проверка сервиса будет применяться ко всем хостам в agroup Помимо ahost.

define service {
    hostgroup_name   agroup
    host_name       !ahost   
    service_description Shared NFS mount
    check_command check_nrpe!check_shared_mount
    use generic-service

}

Еще не пробовал с хостами, но с группами хостов с префиксом ! работает. Я использую это для выполнения другой проверки нагрузки на загруженных серверах:

define host {
    use         physical-host
    host_name   busy-host.example.com
    alias       busy-host.example.com
    address     10.43.16.1
    hostgroups  linux,centos,ldap,http,busy
}

define host {
    use           physical-host
    host_name     normal-host.example.com
    alias         narmal-host.example.com
    address       10.43.1.1
    hostgroups    linux,centos,dns,proxy,ldap,hp,http,puppetmaster
}

define service {
    use                   generic-service
    hostgroup_name        linux,!busy
    service_description   Load
    check_command         check_snmp_load
}

define service {
    use                   generic-service
    hostgroup_name        busy
    service_description   Load
    check_command         check_snmp_load_busy
}

Вы можете создать одну или несколько групп хостов для исключения вещей - добавить их / их к хостам, где вы хотите исключить одну или несколько проверок - назвав это что-то вроде ~ no-ipv6 или ~ no-ssl или что-то еще, что делает довольно очевидным, что это должно быть сделано.

Примените исключенную группу хостов к хостам, которые вы хотите исключить, в дополнение к обычным хостам, в которые они входят.

В описании службы, где определены имена групп хостов, к которым применяется эта служба, используйте! (в данном контексте означает «не»), чтобы исключить их.

Поэтому, если у вас есть группа хостов «веб-серверы», где некоторые хосты не могут использовать ssl, вы можете создать другую группу хостов «~ no-ssl». В файле services.cfg в определении службы, проверяющей https, под именем группы хостов вы должны поместить webservers,!~no-ssl

В результате все хосты на веб-серверах группы хостов будут проверены на SSL, но те, которые также в группе хостов ~ no-ssl не будет проверяться SSL. Удобно!

Если есть некоторые проверки, которые вы хотите пройти ВСЕ хосты, кроме нескольких, вы можете использовать *,!~exclusion

Эта абстракция чрезвычайно полезна; даже более того, это использование шаблонов для назначения (или исключения) целой группы служб для определенного типа хоста (что затем означает, что вы можете использовать определения групп хостов на каждом хосте просто для «дополнительных» дополнительных проверок, которые вы хотите запустить, или для конкретных исключений - т.е. шаблон является "нормой", группы узлов являются исключением (ями)).