我希望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
}
答案 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工作。