
我有一個 Nagios 伺服器,其中包含許多hostgroups
.其中之一hostgroups
包括一台伺服器,我想將其排除在特定 Nagios 的檢查之外Check
,但我希望它繼續成為 Nagios 的成員,hostgroup
這樣它就可以檢查所有其他已檢查的checks
Nagios 。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
這種抽象非常有用。更重要的是使用模板將一整套服務分配(或排除)到一種類型的主機(這意味著您可以使用每個主機上的主機組定義來簡單地進行您想要運行的“額外”附加檢查,或特定的排除- 即模板是“規範”,主機群組是例外)。