我有一台包含许多 的 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 检查 - 但那些还在主机组中 ~no-ssl 不会检查 SSL。方便!
如果你希望所有主机都接受一些检查,除了少数几个之外,你可以使用*,!~exclusion
这种抽象非常有用;更重要的是使用模板将一大堆服务分配(或排除)给某种类型的主机(这意味着您可以在每个主机上使用主机组定义仅进行您想要运行的“额外”附加检查,或特定排除 - 即模板是“常态”,主机组是例外)。