Nagios SMS notifications – integration manual

Here we describe how to setup Nagios with SMSEagle for SMS notifications. It should take you about 5 min to have it up and running.

This tutorial is also available on: Nagios Exchange website

SMSEagle is an offline hardware SMS gateway. Therefore no external connection to 3rd party system is required. All notifications are generated on-premise and sent directly to a cellular network. This solution can be used in secure installations without Internet access.

SMSEagle Setup

  • Create a new user in SMSEagle (menu Users > + Add Users, user access level: “User”).
  • Grant API access to the created user:
    • click Access to API beside the newly created user
    • Enable APIv1
    • Generate new token (copy it for later use)
    • Add access permissions in section APIv1 Permission for: send_sms, send_tocontact, send_togroup
    • Save settings

This will generate a new API access token for your SMSEagle. The API token will be referenced below as SMSEAGLEAPITOKEN. Replace SMSEAGLEAPITOKEN in script below with your value.

Nagios Setup

1. Download latest version of the script notify_eagle_sms.pl from our repository: https://bitbucket.org/proximus/smseagle-nagios
Place the plugin in your Nagios plugins directory.

2. Create the SMS notification commands (commonly found in file commands.cfg).
Replace SMSEAGLEURL with URL Address of your SMSEagle device (for example: http://192.168.50.150)
Replace SMSEAGLEAPITOKEN with your API token for your SMSEagle (for example: NZg2yNmWYb5Q7I3Y3Ifnk5E)

Define two commands:

define command { 
command_name notify-by-sms 
command_line $USER1$/notify_eagle_sms.pl -s SMSEAGLEURL -a SMSEAGLEAPITOKEN -d $CONTACTPAGER$ -t "$NOTIFICATIONTYPE$ $SERVICESTATE$ $SERVICEDESC$ Host($HOSTNAME$) Info($SERVICEOUTPUT$) Date($SHORTDATETIME$)" 
} 

define command { 
command_name host-notify-by-sms 
command_line $USER1$/notify_eagle_sms.pl -s SMSEAGLEURL -a SMSEAGLEAPITOKEN -d $CONTACTPAGER$ -t "$NOTIFICATIONTYPE$ $HOSTSTATE$ Host($HOSTALIAS$) Info($HOSTOUTPUT$) Time($SHORTDATETIME$)" 
}

3. In your Nagios contacts (commonly found in file contacts.cfg) add the contact. Field “pager” should contain a mobile number for sms alerts in full international format without leading + sign, for example: 48xxxxxxxxx (if your mobile operator requires + sign in a telephone number put 00 instead)

define contact { 
contact_name engineer 
alias Support Engineer 
service_notification_period 24x7 
host_notification_period 24x7 
service_notification_options w,u,c,r 
host_notification_options d,u,r 
service_notification_commands notify-by-email,notify-by-sms 
host_notification_commands host-notify-by-email,host-notify-by-sms 
email engineer@somedomain.com 
pager 48xxxxxxxx 
}

Notice for Nagios XI users: If you encounter perl error, please add the path to the perl executable at the start of the command in Nagios.

If you encounter the following error during the script run: “Message sending error: LWP will support https URLs if the LWP::Protocol::https module is installed.“, make sure you have liblwp-protocol-https-perl package installed in your system.

Have Questions?

SMSEagle devices are designed for easy setup. If you don't have a device yet, just buy your SMSEagle and get started with your integration. If you need technical assistance or have questions about our products, we’ll be happy to help you.