Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

To send SMS notifications via GSM - modem is in the Vutlan master units in Nagios, you can use the following scripts:

SMS for v. 2.3.3 and lower 

SMS for v. 2.4.0 and higher

sendsms_skycontrol
Code Block
languagetext
titlesendsms_skycontrol
#!/bin/bash
# Script for sending SMS notifications via GSM-modem
usage()
{
cat << EOF
usage: $0 options
OPTIONS:
   -?,-h   Show this message
   -H      Hostname or IP address
   -u      User name
   -p      Password
   -P      Phone for sending 
   -m      Message for sending
EOF
}
HOSTIP=
USERNAME=
PASSWORD=
TOPHONE=
MESSAGE='Test'
while getopts “hH:u:p:P:m:” OPTION
do
     case $OPTION in
         h)
             usage
             exit 1
             ;;
         H)
             HOSTIP=$OPTARG
             ;;
         u)
             USERNAME=$OPTARG
             ;;
         p)
             PASSWORD=$OPTARG
             ;;
         P)
             TOPHONE=$OPTARG
             ;;
         m)
             MESSAGE=$OPTARG
             ;;
         ?)
             usage
             exit
             ;;
         
     esac
done
if [[ -z $HOSTIP ]] || [[ -z $USERNAME ]] || [[ -z $PASSWORD ]] || [[ -z $TOPHONE ]] || [[ -z $MESSAGE ]]
then
     usage
     exit 1
fi

# 1) hash
HASH=`echo -n ${PASSWORD} | openssl dgst -sha1 | awk '{print $NF}'`
# 2) autorisation
RESPONSE=`curl -s -d "querytype=auth&name=${USERNAME}&h=${HASH}" "${HOSTIP}/engine.htm"`
# 3) session key
KEY=`echo -n  ${RESPONSE} | awk -F"\"" '{print $4}'`
# 4) send SMS
curl -d "querytype=send_sms_message&k=${KEY}" --data-urlencode "to_phone=${TOPHONE}" --data-urlencode "message=${MESSAGE}" ${HOSTIP}/engine.htm > /dev/null 2>&1

Send SMS through a script example:

...

/etc/nagios/objects/schosts.cfg
Code Block
languagetext
./sendsms_vutlan -H 192.168.0.193 -p secret -P +777 -m 'This is a text'

where 192.168.0.193 - address of the master unit with GSM - modem;
       secret  - user password for the master unit with GSM - modem;
       +777 - phone number to send a message; 
       'This is a text' - forwarded message text;

In order to bind the current script to Nagios, you must create a notification command in the Nagios configuration file:

...

/etc/nagios/objects/commands.cfg
Code Block
languagetext
define command{
        command_name notify-service-by-sms
        command_line $USER1$/sendsms_vutlan -H 192.168.1.190 -p guest -P $CONTACTPAGER$ -m "Nagios – $NOTIFICATIONTYPE$ : $HOSTALIAS$/$SERVICEDESC$ is $SERVICESTATE$"
}
define command{
        command_name notify-host-by-sms
        command_line $USER1$/sendsms_vutlan -H 192.168.1.190 -p guest -P $CONTACTPAGER$ -m "Nagios – $NOTIFICATIONTYPE$ : Host $HOSTALIAS$ is $HOSTSTATE$"
}

You must also create or edit a Nagios contact: 

...

...

/etc/nagios/objects/contacts.cfg
Code Block
languagetext
define contact{
        contact_name                    nagiosadmin             ; Short name of user
        use                             generic-contact         ; Inherit default values from generic-contact template (defined above)
        alias                           Nagios Admin            ; Full name of user
        service_notification_options    w,u,c,r
        host_notification_options       d,u,r
        service_notification_commands   notify-service-by-email,notify-service-by-sms
        host_notification_commands      notify-host-by-email,notify-host-by-sms
        email                           nagios@localhost        ; <<***** CHANGE THIS TO YOUR EMAIL ADDRESS ******
        pager                           +329999999999           ; <<***** CHANGE THIS TO YOUR PHONE NUMBER ******
}

Delivered notifications example:

Notification 1
Code Block
languagetexttitleNotification 1
Nagios – PROBLEM : Local EMS/Vutlan Element Service is WARNING 

Notification 2
Code Block
languagetexttitleNotification 2
Nagios – PROBLEM : Local EMS/Vutlan Table of Elements Service is CRITICAL  

...