Monitoring

如何在 Icinga/Nagios 中進行持久確認?

  • November 24, 2021

我正在使用 Icinga (Nagios fork) 來監控外部主機和服務的正常執行時間。目前,在查看“關鍵”計數時,我發現很難確定是內部服務受到影響(我應該立即採取行動)還是外部服務受到影響(我只是承認問題)。

有沒有辦法為檢查的主機/服務的未來停機時間保留問題確認?有沒有辦法自動確認外部主機/服務的狀態變化?

已了解如何對外部主機進行自動確認。

首先為外部主機定義一個事件處理程序:

define host {
       name            some-external-server
       # ...
       event_handler   handle_external_host
       # ...
}

然後定義要用作事件處理程序的命令:

define command {
       command_name    handle_external_host
       command_line    $USER1$/eventhandlers/acknowledge_host_problem $HOSTNAME$ icingaadmin "Handled by external user"
}

最後將事件處理程序腳本放入文件 /usr/local/icinga/libexec/eventhandlers/acknowledge_host_problem (或安裝事件處理程序的位置):

#!/bin/sh

printf_cmd="/usr/bin/printf"
command_file="/usr/local/icinga/var/rw/icinga.cmd"

hostname="$1"
author="$2"
comment="$3"

# get the current date/time in seconds since UNIX epoch
now=`date +%s`

# pipe the command to the command file
$printf_cmd "[%lu] ACKNOWLEDGE_HOST_PROBLEM;%s;1;1;0;%s;%s\n" $now "$hostname" "$author" "$comment" >> $command_file

不要忘記使用命令“chmod +x”或類似命令使腳本可執行。有關 ACKNOWLEDGE_HOST_PROBLEM 的詳細資訊,請參閱 Icinga 文件

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