Sending unlimited push notifications to your iPhone or any Growl client from nagios/icinga for free with prowlapp.com or howlapp.com
UPDATE: Push also looks like a great service and is multi-platform.
Sir Issac Newton, pioneer of LSD (clearly).
Last time I talked about notifications, I talked about using SMS via Twilio, but I quickly realized that I didn’t like the unrealibility of SMS, and instead, opted to use the push service (with confirmed receipt) NotifyMyAndroid, which was great! By the way, the Email-to-SMS gateway for Sprint (at least) tended to not deliver SMS in a timely manner or at all.
So now that I’ve switched to the iPhone (mostly because I get bored easily), I’d like to send push notifications in a similar manner to NotifyMyAndroid’s excellent client, where confirmation of client receipt is very important. After doing some preliminary research, I came across Growl notifications, the prowlapp.com service and the howlapp.com service.
All of these services are similar in that they manage notification sending via handling client configuration with an API key that “subscribes” the client to messages sent to the services using an RESTful API or Email address.
Here is a quick comparison of the three services:
|Client app cost||free||$2.99||$2.99|
|Sending limit||800/hour (5 per 24 hours are free)||1000/hour||2000/31 days|
|Client connection limit||no||no||no|
|Time held for delivery||15 days||10 days||? days|
The assessment is quite clear. Prowl it is. Howl states it “is designed for personal use,” so the rate limit is 2000 per 31 days, a flow that is totally unsuitable for alerting (may be?).
Get your API key:
1) Go to prowlapp.com and click Register at the top; enter the info and click Register; then log in.
2) After logging in, click API keys at the top left tab menu.
3) Under “Generate a new API key” click Generate Key, and add a note if you wish like “icinga for work”, and click Update key.
Configure the use of prowl in icinga:
1) Go to your icinga server and download nagios/icinga script that wirehive.com wrote that uses the prowlapp.com’s API to push notifications to your exec directory:
yum -y install unzip cd $(grep USER1$= /etc/icinga/resource.cfg | cut -d = -f 2) wget http://www.wirehive.net/uploads/blogfiles/send_prowl.zip unzip -pC send_prowl.zip send_prowl > notify-host-by-prowl.sh cp notify-host-by-prowl.sh notify-service-by-prowl.sh chmod 755 notify-host-by-prowl.sh notify-service-by-prowl.sh
2) Add the command definitions into your Lconf generated icinga cfg_file, by adding two lconfCommand objects to the default_conf of your Lconf LDAP tree:
For host, where ARG1 is the priority of the notification:
cn: notify-host-by-prowl lconfCommandline: $USER1$/notify-host-by-prowl.sh -d [API key] -f "email@example.com" -H $HOSTNAME$ -S $HOSTSTATE$ -p $ARG1$
cn: notify-service-by-prowl lconfCommandline: $USER1$/notify-service-by-prowl.sh -d [API key] -f "firstname.lastname@example.org" -H $HOSTNAME$ -s $SERVICESTATE$ -p $ARG1$
3) Create a lconfContact object with the following properties with the priority set:
cn: prowl_api_key lconfAlias: prowl_api_key lconfContactHostNotificationCommands: notify-host-by-prowl!2 lconfContactServiceNotificationCommands: notify-service-by-prowl!2
4) You can then associate this contact directly to any object. IF the object is assigned to a template, it will transfer to the targeted structural objects, and affect contacts therein.
Now to understand clients… can we use http://www.notify.io/ ?