有没有办法从 Nagios 主机组中排除特定主机?

有没有办法从 Nagios 主机组中排除特定主机?

我有一台包含许多 的 Nagios 服务器hostgroups。其中之一hostgroups包括一台服务器,我想将其排除在对某个特定 Nagios 的检查之外Check,但我希望它继续成为 的成员,hostgroup以便它可能会受到对 的所有其他检查的检查checkshostgroup有没有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

这种抽象非常有用;更重要的是使用模板将一大堆服务分配(或排除)给某种类型的主机(这意味着您可以在每个主机上使用主机组定义仅进行您想要运行的“额外”附加检查,或特定排除 - 即模板是“常态”,主机组是例外)。

相关内容