SMS Integration on NAGIOS for sms19.info with HTTP API
Appearance
OBJECTIVE[edit]
SMS Integration on NAGIOS for sms19.info with HTTP API
Details Required[edit]
- HTTP API - http://www.sms19.info/ComposeSMS.aspx?username=username&password=password&sender=MPEDIA&to=Number&message=actualmessage&priority=1&dnd=1&unicode=0
- Username and Password
- Working PHP on Nagios Server ( which should be available by Default )
Basic SMS Sending Script for SMS19.INFO[edit]
/usr/local/nagios/libexec/sms.php
<html> <body> <?php $user = 'Username'; $pass = 'Password'; $num = $argv[1]; $message = $argv[2]; $ch=curl_init(); curl_setopt($ch, CURLOPT_URL, "http://www.sms19.info/ComposeSMS.aspx?username=".urlencode($user)."&password=".urlencode($pass)."&sender=MPEDIA&to=".urlencode($num)."&message=".urlencode($message)."&priority=1&dnd=1&unicode=0"); curl_setopt($ch, CURLOPT_HEADER, 0); curl_exec($ch); curl_close($ch); ?> </body> </html>
Testing of basic Script[edit]
On Linux Command prompt and in the /usr/local/nagios/libexec/ ( directory )
php sms.php 9810030018 "Test from Nagios"
Where sms.php is the script , 9810030018 is the mobile to which sms needs to be send and then "Test from Nagios" is the message
This test will send the SMS on the Mobile
Nagios Integration[edit]
Create /usr/local/nagios/libexec/sms.sh
#!/bin/sh cd /usr/local/nagios/libexec/ php sms.php 9810030018 "$1" php sms.php 9810077506 "$1"
Then
chmod 755 /usr/local/nagios/libexec/sms.sh chown nagios.nagios /usr/local/nagios/libexec/sms.sh
Add the following in command.cfg
# 'notify-service-by-sms' command definition
define command{
command_name notify-service-by-sms
command_line /usr/local/nagios/libexec/sms.sh "--Nagios Service Notification-- Host: $HOSTNAME$, State: $HOSTSTATE$ Service $SERVICEDESC$ Description: $SERVICESTATE$ Time: $LONGDATETIME$ Service_output: $SERVICEOUTPUT$"
}
# 'notify-host-by-sms' command definition
define command{
command_name notify-host-by-sms
command_line /usr/local/nagios/libexec/sms.sh "--Nagios Host Notification-- Host: $HOSTNAME$, State: $HOSTSTATE$, Time: $LONGDATETIME$"
}
Add the SMS contact in contact.cfg
define contact{
contact_name biswajit-mm-sms ; Short name of user
use generic-contact ; Inherit default values from generic-contact template (defined above)
alias SMS-to-BB-MM ; Full name of user
service_notification_commands notify-service-by-sms
host_notification_commands notify-host-by-sms
}
Make it part of some contact Group to get the SMS ( contact.cfg)
define contactgroup{
contactgroup_name escalation
alias Escalation Contact Group
members biswajitmail, mailamit,biswajit-mm-sms
}
Check the Nagios configuration via
/usr/local/nagios/bin/nagios -v /usr/local/nagios/etc/nagios.cfg
Reload the Nagios to have the changes reflected
/etc/init.d/nagios reload
Once Any alert is generated the SMS will be in the following sample text
From: LM-MPEDIA Received: Dec 17, 2013 11:24 --Nagios Service Notification-- Host: arihant.arihanteletricals.com, State: UP Service Cpu Utilization Description: CRITICAL Time: Tue Dec 17 11:23:55 I ST 2013 Service_output: CRITICAL - user: 21.08, nice: 0.50, sys: 5.40, iowait: 73.04, irq: 0.50, softirq: 2.46 idle: 0.50