nagios通过twilio发送短信通知

时间:2015-10-28 14:00:39

标签: sms twilio nagios

我希望nagios通过twilio向不止一个[人]发送短信。

我该怎么做?

我使用过此代码,但它只将短信发送到一个电话号码:

define command {
        command_name    notify-by-page
        command_line    curl --data-urlencode "From=YOURTWILIONUMBER" --data-urlencode "To=YOURCELL" --data-urlencode "Body=[Nagios] $NOTIFICATIONTYPE$ $HOSTALIAS$/$SERVICEDESC$ is $SERVICESTATE$" https://SID:TOKEN@api.twilio.com/2010-04-01/Accounts/SID/SMS/Messages >> /tmp/sms
}
define command {
        command_name    host-notify-by-page
        command_line    curl --data-urlencode "From=YOURTWILIONUMBER" --data-urlencode "To=YOURCELL" --data-urlencode "Body=[Nagios] $HOSTSTATE$ alert for $HOSTNAME$" https://SID:TOKEN@api.twilio.com/2010-04-01/Accounts/SID/SMS/Messages >> /tmp/sms
}

1 个答案:

答案 0 :(得分:3)

您必须为要发送短信的每个电话号码向Twilio API发出单独的POST请求。在这种情况下,我会编写一个Bash脚本来发送所有消息,然后让nagios调用该Bash脚本。

这是一个示例脚本:

#!/bin/bash
curl --data-urlencode "From=YOURTWILIONUMBER" --data-urlencode "To=YOURCELL" --data-urlencode "Body=${1}" https://SID:TOKEN@api.twilio.com/2010-04-01/Accounts/SID/SMS/Messages >> /tmp/sms
curl --data-urlencode "From=YOURTWILIONUMBER" --data-urlencode "To=ANOTHERCELL" --data-urlencode "Body=${1}" https://SID:TOKEN@api.twilio.com/2010-04-01/Accounts/SID/SMS/Messages >> /tmp/sms

您会注意到我接受了正文作为脚本的第一个参数。然后你的nagios配置看起来像这样:

define command {
        command_name    notify-by-page
        command_line    /path/to/script.sh "[Nagios] $NOTIFICATIONTYPE$ $HOSTALIAS$/$SERVICEDESC$ is $SERVICESTATE$"
}
define command {
        command_name    host-notify-by-page
        command_line    /path/to/script.sh "[Nagios] $HOSTSTATE$ alert for $HOSTNAME$"
}

免责声明:我为Twilio工作。