Как сделать постоянное признание в Icinga/Nagios?

Я использую Icinga (форк Nagios), чтобы также отслеживать время работы внешних хостов и сервисов. В настоящее время, когда я смотрю на количество "Критических", мне трудно определить, затронута ли внутренняя служба (я должен предпринять немедленные действия) или внешняя служба (я просто признаю проблему).

Есть ли способ сохранить подтверждение проблемы для будущих простоев проверенного хоста / службы? Есть ли способ автоматического подтверждения изменения состояния внешних хостов / сервисов?

2 ответа

Решение

Выяснили, как делать авто-подтверждения для внешних хостов.

Сначала определите обработчик событий для внешнего хоста:

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/cknowledge_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.

Спасибо! Сделать скрипт для nagios.

      #!/bin/sh

### use "acknowledge hostname" or "acknowledge hostname service" ###
#Example ./acknowledge GPON-Maerchaka-65-D1D2-SPD "1/6 10562_SosinCV_Kot.21_194.226.63.253"
# a list of external commands here: http://www.nagios.org/development/apis/externalcommands/
printf_cmd="/usr/bin/printf"
command_file="/var/lib/nagios3/rw/nagios.cmd"

hostname="$1"
servicename="$2"

#type of comments (Постоянный, т.е. не удаляется после снятия подтверждения)
persistent=0

#Send notification
notification=0

author="script"
comment="auto ack by $0"

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

if [ -n "$servicename" ]; then
    $printf_cmd "[%lu] ACKNOWLEDGE_SVC_PROBLEM;%s;%s;1;%s;%s;%s;%s\n" $now "$hostname" "$servicename" "$notification" "$persistent" "$author" "$comment" >> $command_file
    else
    $printf_cmd "[%lu] ACKNOWLEDGE_HOST_PROBLEM;%s;1;%s;%s;%s;%s\n" $now "$hostname" "$notification" "$persistent" "$author" "$comment" >> $command_file
fi

#Host Name
#Service (if service)
#Sticky Acknowledgement
#Send Notification
#Persistent Comment
#Author
#Comment
Другие вопросы по тегам