Назад | Перейти на главную страницу

Как изменить предупреждение о ловушке с неизвестного на критическое в Icinga 1?

У меня есть ловушка, отправляемая устройством, которое отображается как UNKNOWN в Icinga 1.13, потому что MIB ожидает целое число, но ловушка отправляет:

Не удалось подключиться к регистратору SIP Не удалось установить соединение с регистратором SIP 12848-49-55,45: 52: 45,50 044: 4956585254584953464844485848 203 Неверный тип таблицы активных сигналов (должен быть INTEGER): 2

Я не могу изменить MIB на устройстве, поэтому я остаюсь думать, что я должен заставить Icinga рассматривать любую ловушку как критическую, независимо от того, соответствует она MIB или нет. Как я могу это сделать?

TL; DR: обновите свой сценарий, чтобы установить $return_code к 2.


Благодарим Вас за разъяснения. Вы упомянули, что используете комбинацию ncsa и send_ncsa.

/usr/bin/printf "%s\t%s\t%s\t%s\n" "$1" "$2" "$return_code" "$4" | \
/usr/sbin/send_nsca -H XXX.XXX.219.31 -c /etc/nagios/send_nsca.cfg

Icinga 1 и Nagios могут использовать ncsa на стороне сервера Icinga для (пассивного) приема результатов проверок. Это означает, что NCSA просто слушает какой-то TCP-сокет, получает результаты по сокету и отправляет полученные данные в Icinga (Nagios).

send_ncsa Затем скрипт на вашем компьютере принимает параметры, которые будут переданы в Nagios / Icinga (AFAIK параметры: host_name, service_name, service_result, service_message).

Часть, которую вы хотите изменить в своем сценарии, - это установка $return_code - соответствует стандарту Поведение Icinga / Nagios - где 0 - ОК, 1 - ПРЕДУПРЕЖДЕНИЕ, 2 - КРИТИЧЕСКОЕ и 3 - НЕИЗВЕСТНО.

Итак, чтобы отправить КРИТИЧЕСКИЙ результат проверки в Icinga, обновите свой скрипт, чтобы установить $return_code к 2.

#!/bin/sh

# Arguments:
#  $1 = host_name (Short name of host that the service is
#       associated with)
#  $2 = svc_description (Description of the service)
#  $3 = state_string (A string representing the status of
#       the given service - "OK", "WARNING", "CRITICAL"
#       or "UNKNOWN")
#  $4 = plugin_output (A text string that should be used
#       as the plugin output for the service checks)
#  $5 = Performance data
#  $6 = Service Check Commands
#

LOGFILE=/var/log/icinga/submit_check_result.log
# Convert the state string to the corresponding return code
return_code=2

case "$3" in
    OK)
        return_code=0
        ;;
    WARNING)
        return_code=1
        ;;
    CRITICAL)
        return_code=2
        ;;
    UNKNOWN)
        return_code=2
        ;;
esac

# pipe the service check info into the send_nsca program, which
# in turn transmits the data to the nsca daemon on the central
# monitoring server

# submit to Cleveland Icinga Master
/usr/bin/printf "%s\t%s\t%s\t%s\n" "$1" "$2" "$return_code" "$4" | /usr/sbin/send_nsca -H 111.222.333.44 -c /etc/nagios/send_nsca.cfg &