如何在 Icinga 1 中将陷阱警报从未知更改为严重?

如何在 Icinga 1 中将陷阱警报从未知更改为严重?

我有一个由设备发送的陷阱,在 Icinga 1.13 中显示为 UNKNOWN,因为 MIB 需要一个整数,但陷阱发送:

无法连接到 SIP 注册器 无法与 SIP 注册器 12848-49-55,45:52:45.50,044:4956585254584953464844485848 建立连接 203 活动警报表错误类型(应为整数):2

我无法修改设备上的 MIB,因此我想我应该让 Icinga 将任何陷阱视为关键陷阱,无论它是否符合 MIB。我该怎么做?

答案1

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 的参数(据我所知,参数是 host_name、service_name、service_result、service_message)。

您想要在脚本中更改的部分是设置$return_code- 它遵循标准Icinga/Nagios 行为- 其中 0 表示 OK,1 表示 WARNING,2 表示 CRITICAL,3 表示 UNKNOWN。

因此,为了将 CRITICAL 作为检查结果发送给 Icinga,请更新脚本以设置$return_code为 2。

答案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 &

相关内容