Linux

是否可以從 Nagios check_command 中排除特定主機

  • April 11, 2018

我有以下配置:

define host {
name                            generic-host

[...]

check_command                   check-host-alive

[...]

register                        0
}

check-host-alive是預設的 ping 檢查,當有 100% 的封包遺失或 5000 毫秒的往返時間時報告嚴重。

在定義主機時,我將其用作模板。現在我需要監控一個阻止 ICMP/Echo 請求的主機,而 Nagios 永久告訴我它處於離線狀態。

主機定義如下:

define host {
host_name                   some.example.com
use                         generic-host
hostgroups                  my-servers
address                     127.0.0.1
}

由於我的配置中有多個伺服器,並且所有伺服器都需要檢查它們是否處於活動狀態,因此我需要從check-host-alive檢查中排除這台伺服器。有沒有辦法做到這一點?

PS:負責要監控的伺服器的系統管理員在任何情況下都不會允許 ICMP/Echo 請求,原因我不知道。

您可以添加一種替代方法來檢查覆蓋模板中定義的活動主機(例如 SSH、HTTP 或任何在您的環境中有意義的東西)。

define host {
  host_name                   some.example.com
  use                         generic-host
  hostgroups                  my-servers
  address                     127.0.0.1
  check_command               ssh-check
}

當然,您必須定義ssh-check它才能工作。

請參閱https://assets.nagios.com/downloads/nagioscore/docs/nagioscore/3/en/objectinheritance.html

你不能只是沒有主機檢查,但你可以使用任何外掛作為主機檢查。

check_pingorcheck_icmp不是一個選項的情況下,下一個最好的方法是使用check_tcp指向一個開放埠(針對像 ssh 這樣的穩定的東西,這是“主機啟動”的一個很好的模擬)。

如果您真的無法進行主機檢查,則總是存在check_dummy,但這會弄亂檢查/通知邏輯,從而導致主機上的每個服務(如果/何時出現故障)都會發出通知。

引用自:https://serverfault.com/questions/906881