有沒有辦法從 Nagios 主機群組排除特定主機?

有沒有辦法從 Nagios 主機群組排除特定主機?

我有一個 Nagios 伺服器,其中包含許多hostgroups.其中之一hostgroups包括一台伺服器,我想將其排除在特定 Nagios 的檢查之外Check,但我希望它繼續成為 Nagios 的成員,hostgroup這樣它就可以檢查所有其他已檢查的checksNagios 。hostgroup是否有一個選項exclude或類似的東西可以幫助我實現我的目標?謝謝

答案1

尚未在主機上嘗試過,但在主機組上嘗試過,並以!作品為前綴。我用它在繁忙的伺服器上運行不同的負載檢查:

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

這種抽象非常有用。更重要的是使用模板將一整套服務分配(或排除)到一種類型的主機(這意味著您可以使用每個主機上的主機組定義來簡單地進行您想要運行的“額外”附加檢查,或特定的排除- 即模板是“規範”,主機群組是例外)。

相關內容