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


我有一个Nagios服务器,其中包括许多 hostgroups。 其中之一 hostgroups 包括一个服务器,我想排除检查一个特定的Nagios Check 但我希望它继续成为其中的一员 hostgroup 所以可能会检查所有其他的 checks 那个 hostgroup 检查。 有没有选择 exclude 或类似的东西可以帮助我实现我的目标? 谢谢


6
2017-12-31 10:23






答案:


尚未尝试使用主机,但使用主机组,前缀为 ! 作品。我使用它来在繁忙的服务器上运行不同的负载检查:

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
}

7
2017-12-31 10:32





使用a添加特定主机 ! 服务定义中的前缀。下面的服务检查将适用于所有主机 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

}


7
2018-02-14 12:09



是否有可能在主机文件中而不是定义服务的位置实现此目的? - user230910


您可以创建一个或多个主机组来排除事物 - 将它/它们添加到您要排除一个或多个检查的主机 - 命名为~no-ipv6或~no-ssl之类的东西或任何使它非常明显的东西这是有意义的。

将排除主机组应用于您要排除的主机以及它所属的正常主机。

在服务描述中,定义了应用该服务的主机组名称,使用! (在这种情况下,意思是“不”)排除它们。

因此,如果您有一个主机组“webservers”,某些主机无法执行ssl,您可能会创建另一个主机组“~no-ssl”。在services.cfg文件中,在检查https的服务定义上,在主机组名称下,您将放置 webservers,!~no-ssl

这样做的结果是主机组Web服务器中的所有主机都会针对SSL进行检查 - 但是那些是  在hostgroup~no-ssl中不会检查SSL。便利!

如果有一些检查你想要所有主机,除了少数,你可以使用 *,!~exclusion

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


1
2018-02-08 06:36