I came across Pushover recently which makes it easy to send real-time notifications to your Android and iOS devices. And easy it is. It also allows you to set up applications with logos so that you can have multiple Nagios installations shunting alerts to you via Pushover with each one easily identifiable. After just a day playing with this, it’s much nicer than SMS’.
So, to set up Pushover with Nagios, first register for a free Pushover account. Then create a new application for your Nagios instance. I set the type to Script and also upload a logo. After this, you will be armed with two crucial pieces of information: your application API tokan/key ($APP_KEY
) and your user key ($USER_KEY
).
To get the notification script, clone this GitHub repository or just down this file – notify-by-pushover.php.
You can test this immediately with:
echo "Test message" | \ ./notify-by-pushover.php HOST $APP_KEY $USER_KEY RECOVERY OK
The parameters are:
USAGE: notify-by-pushover.php <$APP_KEY> \ <$USER_KEY> <NOTIFICATIONTYPE>
Now, set up the new notifications in Nagios / Icinga:
# 'notify-by-pushover-service' command definition define command{ command_name notify-by-pushover-service command_line /usr/bin/printf "%b" "$NOTIFICATIONTYPE$: \ $SERVICEDESC$@$HOSTNAME$: $SERVICESTATE$ \ ($SERVICEOUTPUT$)" | \ /usr/local/nagios-plugins/notify-by-pushover.php \ SERVICE $APP_KEY $CONTACTADDRESS1$ \ $NOTIFICATIONTYPE$ $SERVICESTATE$ } # 'notify-by-pushover-host' command definition define command{ command_name notify-by-pushover-host command_line /usr/bin/printf "%b" "Host '$HOSTALIAS$' \ is $HOSTSTATE$: $HOSTOUTPUT$" | \ /usr/local/nagios-plugins/notify-by-pushover.php \ HOST $APP_KEY $CONTACTADDRESS1$ $NOTIFICATIONTYPE$ \ $HOSTSTATE$ }
Then, in your contact definition(s) add / update as follows:
define contact{ contact_name ... ... service_notification_commands ...,notify-by-pushover-service host_notification_commands ...,notify-by-pushover-host address1 $USER_KEY }
Make sure you break something to test that this works!