
У меня есть сервер Nagios, который включает в себя множество hostgroups
. Один из них hostgroups
включает в себя сервер, который я хотел бы исключить из проверки для одного конкретного Nagios, Check
но я хочу, чтобы он оставался членом , hostgroup
чтобы он мог проверяться для всех остальных, для checks
которых hostgroup
проверяется . Есть ли опция exclude
или что-то подобное, что может помочь мне достичь моей цели? Спасибо
решение1
Пока не пробовал с хостами, но с хостгруппами, префикс с a !
работает. Я использую это для запуска другой проверки нагрузки на загруженных серверах:
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
}
решение2
Добавьте конкретный хост с !
префиксом в определение сервиса. Проверка сервиса ниже будет применяться ко всем хостам в 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
}
решение3
Вы можете создать одну или несколько групп хостов для исключения чего-либо — добавьте ее/их к хостам, где вы хотите исключить одну или несколько проверок — назвав ее как-то вроде ~no-ipv6 или ~no-ssl или как-то так, чтобы было очевидно, для чего она предназначена.
Примените исключаемую группу хостов к хосту(ам), который(е) вы хотите исключить, в дополнение к обычным хостам, в которые он(и) входит.
В описании службы, где определены имена групп хостов, к которым применяется эта служба, используйте ! (в данном контексте означающее «нет»), чтобы исключить их.
Так что если у вас есть группа хостов "webservers", где некоторые хосты не могут использовать ssl, вы можете создать другую группу хостов "~no-ssl". В файле services.cfg, в определении сервиса, который проверяет https, под именем группы хостов, вы должны указатьwebservers,!~no-ssl
Эффект этого будет заключаться в том, что все хосты в группе веб-серверов будут проверяться на наличие SSL, но те, которыетакжев hostgroup ~no-ssl не будет проверяться SSL. Удобно!
Если есть некоторые проверки, которые вы хотите, чтобы прошли ВСЕ хосты, за исключением нескольких, вы можете использовать*,!~exclusion
Эта абстракция чрезвычайно полезна; еще более полезно использование шаблонов для назначения (или исключения) целого ряда служб определенному типу хоста (что означает, что вы можете использовать определения групп хостов на каждом хосте просто для «дополнительных» дополнительных проверок, которые вы хотите выполнить, или для определенных исключений — т. е. шаблон — это «норма», группы хостов — это исключение(я)).