6

I know the sms gateway for my cell phone provider so I can just send an email to it.

I am looking for examples of entries in contacts.cfg and commands.cfg that are mobile specific.

ckliborn
  • 2,750
  • 4
  • 24
  • 36

4 Answers4

3

Using a 3rd-party SMS service, or (even better) using a GSM device as Craig suggests, is going to be much more reliable/robust.

If you're dead set on using the provider's email->SMS gateway, you can use slimmed-down contact commands like this:

define command {
    command_name    notify-host-by-sms
    command_line    /usr/bin/printf "%b" "$NOTIFICATIONTYPE$\n$HOSTNAME$ is $HOSTSTATE$\n$HOSTOUTPUT$\n" | /usr/bin/mail -s "[Nagios] ($HOSTNAME$ $HOSTSTATE$)" $CONTACTEMAIL$

}

define command {
    command_name    notify-service-by-sms
    command_line    /usr/bin/printf "%b" "$NOTIFICATIONTYPE$\n$SERVICEDESC$ ($HOSTNAME$) is $SERVICESTATE$\n$SERVICEOUTPUT$" | /usr/bin/mail -s "[Nagios] ($HOSTNAME$/$SERVICEDESC$)" $CONTACTEMAIL$

If any of these end up being too long, you can remove or substitute different macros in several places, as necessary. See the macro list for info on what's available in a notification command.

Keith
  • 4,627
  • 14
  • 25
2

In contacts_nagios2.cfg:

define contactgroup{
        contactgroup_name       admins
        alias                   Nagios Administrators
        members                 user
}
define contact{
        contact_name                    name
        alias                           name
        service_notification_period     24x7
        host_notification_period        24x7
        service_notification_options    w,u,c,r
        host_notification_options       d,r
        service_notification_commands   notify-by-sms
        host_notification_commands      host-notify-by-sms
        email                           mail
        pager                          MOBILENUMBER
}

And in commands.cfg

define command{
       command_name notify-by-sms
       command_line script-to-sms-service
}
define command{
       command_name host-notify-by-sms
       command_line script-to-sms-service
}
Tombart
  • 2,013
  • 3
  • 27
  • 47
user
  • 1,408
  • 8
  • 10
  • How would I be able to limit the texts to 160 characters? Is there any standard way of doing that? – ckliborn Jan 26 '12 at 23:18
  • You can either impose that limit through your script (trim) or check that your plug-ins never produce more than 160 characters. – user Jan 27 '12 at 09:57
1

The first answer will do what you need.

You can send SMS messages through an SMS service, send them via the cell providers email to SMS addresses, or use a local SMS server. We did the latter. This link will give you details on how to do it:

http://www.linuxjournal.com/magazine/using-sms-server-provide-robust-alerting-service-nagios

This has been running for 1.5 yrs. Very reliable, and not dependent on email servers, or third party services.

Craig
  • 1,354
  • 6
  • 14
-2

If you want something that can be used out-of-the-box, you can take a look at SMSEagle

That's a hardware sms gateway. Their advantage is that the device stands close to your infrastructure, so when your Internet connection fails you can still send your SMS alerts.

They have ready plugin for Nagios - integration takes about 5min.

Radoslaw
  • 47
  • 5
  • 3
    All of your answers, so far, link this same product. I should hope you're not here only to promote it. Please see the section labeled [How not to be a spammer](http://serverfault.com/help/promotion) from the site help. – jscott May 29 '15 at 09:34