Auf der Suche nach einer Lösung, wie ich die Notifications von meinem Ubuntu Server mit Nagios auf mein iPhone bekomme, bin ich über eine Funktion gestolpert, die ich zuerst gar nicht bedacht habe….
Meine erste Idee war via SMS; nur bräuchte ich dazu einen SMS-Gateway, der meine Notifications weiterleitet, und diese sind nicht immer ganz billig leider. Auch eMail hatte ich bedacht, jedoch ist dies nicht gerade komfortabel, da diese nicht so schnell und nicht so offensichtlich auf dem iPhone erscheinen wie eine SMS.
Erst beim googeln bin ich auf die iPhone-Push-Benachrichtigung gestossen, welche jedes iPhone ja standardmässig integriert hat. Ich habe dabei zuerst Lösungen mit Mac-Server gefunden, und wollte die Idee auch schon abschreiben, als ich über den Dienst Prowl gestossen bin. Diese bieten eine API und ein Perl-Script an, welche eine Mitteilung von meinem Linux-Server über den Mac-Server von Prowl auf mein iPhone übertragen kann. Alles was ich dazu brauche ist die Prowl App aus dem App-Store.
Und das Einrichten ist auch gänzlich einfach.
Auf der Seite von Prowl muss ich mich registrieren und die passende App aus dem Store herunterladen.
Nun lade ich das Perl-Script von der Seite auf meine Server:
wget http://www.prowlapp.com/static/prowl.pl
Hier muss man daran denken, dass das Script für den Benutzer zugänglich sein muss, unter welchem auch das Nagios läuft!
Nun müssen noch die passenden Pakete installiert werden:
aptitude install libwww-perl libcrypt-ssleay-perl
Wenn nun alles funktioniert hat, so kann die erste Nachricht versandt werden:
./prowl.pl -apikey="ENTER_APIKEY" -application="Nagios" -event="Notification" -notification="Dies ist ein Test"
Klinget es auf dem Handy, so kann man das ganze noch in Nagios integrieren. Dazu wird ein neuer Kontakt angelegt unter /usr/local/nagios/etc/objects/contacts.cfg:
define contact {
contact_name patrick_iphone
alias Patrick
service_notification_period 24x7
host_notification_period 24x7
service_notification_options w,u,c,r,f,s
host_notification_options d,u,r,f,s
service_notification_commands notify-service-by-prowl
host_notification_commands notify-host-by-prowl
_prowl_apikey ENTER_APIKEY
}












