如何配置 icinga/nagios 以通过短信发出警报?

如何配置 icinga/nagios 以通过短信发出警报?

我知道我的手机提供商的短信网关,所以我可以向其发送电子邮件。

我正在寻找 contacts.cfg 和 command.cfg 中特定于移动设备的条目示例。

答案1

contacts_nagios2.cfg

define contactgroup{
        contactgroup_name       admins
        alias                   Nagios Administrators
        members                 user
}
define contact{
        contact_name                    name
        alias                           name
        service_notification_period     24x7
        host_notification_period        24x7
        service_notification_options    w,u,c,r
        host_notification_options       d,r
        service_notification_commands   notify-by-sms
        host_notification_commands      host-notify-by-sms
        email                           mail
        pager                          MOBILENUMBER
}

并且在commands.cfg

define command{
       command_name notify-by-sms
       command_line script-to-sms-service
}
define command{
       command_name host-notify-by-sms
       command_line script-to-sms-service
}

答案2

使用第三方 SMS 服务,或者(更好的是)使用 GSM 设备(正如 Craig 建议的那样),将会更加可靠/稳定。

如果您坚持使用提供商的电子邮件->短信网关,则可以使用精简的联系命令,如下所示:

define command {
    command_name    notify-host-by-sms
    command_line    /usr/bin/printf "%b" "$NOTIFICATIONTYPE$\n$HOSTNAME$ is $HOSTSTATE$\n$HOSTOUTPUT$\n" | /usr/bin/mail -s "[Nagios] ($HOSTNAME$ $HOSTSTATE$)" $CONTACTEMAIL$

}

define command {
    command_name    notify-service-by-sms
    command_line    /usr/bin/printf "%b" "$NOTIFICATIONTYPE$\n$SERVICEDESC$ ($HOSTNAME$) is $SERVICESTATE$\n$SERVICEOUTPUT$" | /usr/bin/mail -s "[Nagios] ($HOSTNAME$/$SERVICEDESC$)" $CONTACTEMAIL$

如果其中任何一个太长,您可以根据需要在多个位置删除或替换不同的宏。请参阅宏列表了解通知命令中可用的内容的信息。

答案3

第一个答案将满足您的需要。

您可以通过短信服务发送短信,通过手机提供商的电子邮件将其发送到短信地址,或者使用本地短信服务器。我们采用的是后者。此链接将为您提供有关如何操作的详细信息:

http://www.linuxjournal.com/magazine/using-sms-server-provide-robust-alerting-service-nagios

它已经运行了 1.5 年。非常可靠,并且不依赖于电子邮件服务器或第三方服务。

答案4

如果你想要一些可以开箱即用的东西,你可以看看短信鹰

那是硬件短信网关。它们的优势在于设备靠近您的基础设施,因此当您的互联网连接失败时,您仍然可以发送短信警报。

他们已经准备好了Nagios 插件- 集成大约需要5分钟。

相关内容