У меня есть ловушка, отправляемая устройством, которое отображается как 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 &