Seite wählen

Nagios Benachrichtigungen direkt an iPhone pushen

von | Aug 5, 2009 | Nagios

In einem früheren Blogartikel dieser Serie habe ich mich ja schon mit dem Thema beschäftigt, wie man Nagios Benachrichtigungen per Apples Push Mechanismus direkt an ein iPhone übertragen kann. Der damals vorgestellt Lösungsweg erfordert aber den Umweg über einen zwischengeschalteten Mac: Der Nagios Server schickt dabei seine Meldungen per Netzwerk an den dort laufenden Growl Client. Über ein Plugin in Growl werden die Meldungen dann an Prowl, einen ähnlichen Dienst für das iPhone weitergeleitet. Der Nachteil des Macs-in-the-Middle Ansatzes kann aber auch ein Vorteil sein: Man muss sich keine Gedanken über Eskalationen machen. Sitzt man am Rechner, bekommt man seine Meldungen dort lokal angezeigt. Ist man unterwegs und der Mac im idle Mode, werden sie zum iPhone weitergeleitet. Das geht vollautomatisch.
IMG_0321Trotzdem haben mich viele Leute angeschrieben und gefragt, ob es denn nicht auch einen Weg gibt, die Meldungen direkt an das iPhone zu verschicken, ohne den Mac dazwischen. Entweder weil das natürlich unnötig kompliziert ist oder viel naheliegender, weil sie gar keinen Mac haben. Natürlich geht das auch, denn Prowl stellt eine komplette API zur Kommunikation zur Verfügung, die man auch direkt vom Nagios Server aus ansprechen kann. Dies erfordert aber natürlich wie immer, wenn man einen Provider nutzt, dass der Nagios Server noch ins Internet kommt.
Hier also der komplette Weg, wie man einen direkten Push an das iPhone einrichtet:

  1. Als Service um die Benachrichtigungen zu pushen verwenden wir Prowl. Erstellen Sie sich dort unter „Register“ einen persönlichen Account.
  2. Zur einfacheren Authentifizierung von Scripten verwendet Prowl einen API Key. Nach dem Einloggen können Sie diesen Schlüssel im Bereich „Settings“ direkt anfordern. Kopieren Sie sich die Zeichenkette aus 40 Buchstaben und Ziffern am besten in die Zwischenablage. Wenn mehrere Personen Prowl Benachrichtigungen bekommen sollen, benötigt jeder einen eigenen Account und damit auch einen eigenen API Key.
  3. Installieren Sie sich die Prowl iPhone Applikation aus dem App Store (kostet einmalig 2,39, danach fallen keine weiteren Kosten mehr an). Nach der Installation müssen Sie auf dem iPhone nur noch Ihren Usernamen und Ihr Passwort angeben. Ob die Software korrekt installiert und konfiguriert wurde können Sie nun auf der Prowl Seite testen: Unter „Add A Notification“ kann man aus der Website eine Prowl Testnachricht versenden.
  4. Nun geht es an die eigentliche Konfiguration auf dem Nagios Server. Zuerst laden wir uns das Prowl Perl Script direkt von Prowl herunter, kopieren es auf den Nagios Server und machen es ausführbar. Oder einfacher direkt auf dem Server:
    [code lang=“bash“]# cd /usr/lib/nagios/plugins/eventhandlers
    # wget http://prowl.weks.net/static/prowl.pl
    # chmod 755 prowl.pl[/code]
  5. Das Script benötigt einige Perl Bibliotheken. Auf einem Debian oder Ubuntu System lassen die sich mit
    [code lang=“bash“]aptitude install libwww-perl libcrypt-ssleay-perl[/code]
    installieren. Auf anderen Systemen muss man „perl -MCPAN -e shell“ bemühen und dann die folgenden Pakete installieren:
    [code lang=“bash“]install Crypt::SSLeay
    install LWP::UserAgent[/code]
  6. Danach sollte man das Script zumindest einmal manuell testen, um sicherzugehen, dass alle notwendigen Bibliotheken installiert sind und die Kommunikation mit der Prowl API funktioniert:
    [code lang=“bash“]./prowl.pl -apikey="APIKEY_HERE" -application="Nagios" -event="Notification" -notification="Dies ist eine Fehlermeldung"[/code]
  7. Nun geht es an die Integration in Nagios. Da der Prowl Account ja userspezifisch ist, sollte man den API Key am besten gleich bei dem passenden Benutzer mitspeichern. Es bietet sich dazu an, eine Custom Variable eines bestehenden oder neuen Kontakts zu benutzen:
    [code lang=“bash“]define contact {
    contact_name jhein_iPhone
    alias Julian Hein
    service_notification_period 24×7
    host_notification_period 24×7
    service_notification_options w,u,c,r
    host_notification_options d,u,r
    service_notification_commands notify-service-by-prowl
    host_notification_commands notify-host-by-prowl
    _prowl_apikey APIKEY_HERE
    }[/code]
  8. Als nächstes müssen nur noch die passenden Commands definiert werden:
    [code lang=“bash“]define command {
    command_name notify-host-by-prowl
    command_line $USER2$/prowl.pl -apikey="$_CONTACTPROWL_APIKEY$" -priority=1 -application="Nagios" -event="Host Notification" -notification="$HOSTNAME$ $HOSTSTATE$ ‚$HOSTOUTPUT$’"
    }
    define command {
    command_name notify-service-by-prowl
    command_line $USER2$/prowl.pl -apikey="$_CONTACTPROWL_APIKEY$" -priority=1 -application="Nagios" -event="Service Notification" -notification="$HOSTNAME$ $SERVICEDESC$ $SERVICESTATE$ ‚$SERVICEOUTPUT$’"
    }[/code]

Wichtig ist noch, dass der embedded Perl Interpreter ausgeschaltet ist, den sonst kann das Perl Skript nicht fehlerfrei ausgeführt werden. Dazu gibt es in der nagios.cfg eine entsprechende Direktive. Wird der ePN genutzt, kann man alternativ auch in der Command Definition den normalen Interpreter angeben. Statt „$USER2$/prowl.pl“ müsste man dann „/usr/bin/perl -w /usr/lib/nagios/plugins/eventhandlers/prowl.pl“ angeben.IMG_0320
Das wars eigentlich schon. Einfacher und günstiger kann man realtime Meldungen kaum auf sein mobiles Gerät senden. Man sollte sich allerdings klar sein, dass das ganze nur funktioniert, solange der Nagios Server sich noch mit dem Prowl Gateway im Internet verbinden kann. Zusätzlich gibt es ein API Limit von aktuell 1.000 Meldungen pro Stunde und natürlich garantiert Prowl keinerleih Verfügbarkeit. Aber das ist bei SMS ja auch nicht anders.

Julian Hein
Julian Hein
Executive Chairman

Julian ist Gründer und Eigentümer der NETWAYS Gruppe und kümmert sich um die strategische Ausrichtung des Unternehmens. Neben seinem technischen und betriebswirtschaftlichen Background ist Julian häufig auch kreativer Kopf und Namensgeber, beispielsweise auch für Icinga. Darüber hinaus ist er als CPO (Chief Plugin Officer) auch für die konzernweite Pluginstrategie verantwortlich und stösst regelmässig auf technische Herausforderungen, die sonst noch kein Mensch zuvor gesehen hat.

14 Kommentare

  1. Georg Kostner

    Julian, sehr schöner Artikel. Scheint immer mehr interessante Wege zu geben wie man iPhone in Kombination mit Nagios verwenden kann.
    Hier habe ich eine andere ineteressante Anwendung gefunden, und wollte mal nachfragen ob du vielleicht iNag mal ausprobiert hast.

    Antworten
  2. Julian Hein

    Georg Kostner: Julian, sehr schöner Artikel. Scheint immer mehr interessante Wege zu geben wie man iPhone in Kombination mit Nagios verwenden kann.Hier habe ich eine andere ineteressante Anwendung gefunden, und wollte mal nachfragen ob du vielleicht iNag mal ausprobiert hast.http://idevelop.fullnet.com/iapps/modules/apps/inag.php

    Es gibt ja inzwischen schon mehrere Nagios Programme für das iPhone. Ich werde die mal alle testen und dann in einem kommenden Artikel mal vergleichen.

    Antworten
  3. Christian

    Hi,
    super Anleitung. Hat auch auf Anhieb funktioniert.
    Habe noch einen kleinen Tippfehler gefunden:
    # wget ->
    # wget http://prowl.weks.net/static/prowl.pl
    Grüße aus München,
    Christian

    Antworten
  4. David Stiller

    Super Konzept!
    Aber ich verstehe noch nicht, wie _prowl_apikey und $_CONTACTPROWL_APIKEY$ übereinstimmen können. Müsste das nicht $_CONTACT_PROWL_APIKEY$ o.ä. sein?

    Antworten
  5. Julian Hein

    David Stiller: Super Konzept!Aber ich verstehe noch nicht, wie _prowl_apikey und $_CONTACTPROWL_APIKEY$ übereinstimmen können. Müsste das nicht $_CONTACT_PROWL_APIKEY$ o.ä. sein?

    Ich habe ja viele Tippfehler in dem Artikel gemacht, aber an der Stelle stimmt es schon: Wenn Du eine Custom Variable „Rack“ haben willst, schreibst Du in der Host Definition „_Rack“ und im Macro „$_HostRack$“. Steht so auch in der Doku: http://nagios.sourceforge.net/docs/3_0/customobjectvars.html oder

    Antworten
  6. Joern Raffel

    Nagios 2.2 braucht im contact eine Zeile mit „email user@domain.de
    sonst gibt es einen „FAILED! Reload aborted. Check your Nagios configuration.“
    Toller Artikel! Danke!

    Antworten
  7. joern

    Möchte mir gerne das neue Iphone 4 bestellen. Weis jemand ob es ein Update Programm gibt, für Telekom Kunden? Meinen Vertrag könnte ich erst im November verlängern, und das auch nur weil ich einen Rahmenvertrag habe. Im der Community auf http://www.xzz.de/ wurde soetwas vor kurzem angesprochen, jedoch ist das Forum seit kurzem offline.

    sry aber das hat hier nix zu suchem imho.

    Antworten
  8. Julian Hein

    Hallo Jörn, danke für den Hinweis. Hab gerade den Spam Kommentar entfernt. Gruß, Julian

    Antworten
  9. Christian Leue

    Funktioniert prächtig! Danke für den Artikel.

    Antworten
  10. Marcus

    Hallo. Eine gänzlich kostenlose Notification kann man sich mit pushme.to einrichten. Kostenlose App installieren und für deren HTML-Formular ein kleines Skript geschrieben:
    $ curl -F „message=Nachricht“ -F „signature=Nagios“ „http://pushme.to/dein Name bei pushme.to/“
    Nutze sowas für Benachrichtigungen bei Updates in Repositories des SVN-Servers.
    Gruß

    Antworten
  11. Bernd Erk

    Kling auch interessant. Vielen Dank für den Tipp!

    Antworten

Trackbacks/Pingbacks

  1. iPhone: Beliebige Messages Pushen « /var/bergercity/ - [...] Zufall bin ich über das Netways-Blog auf die Prowl-App [...]
  2. links for 2010-04-30 | blog/shl@INTERDOSE - [...] Nagios Benachrichtigungen direkt an iPhone pushen – Prowl, Nagios, iPhone, Server, Meldungen, ... (tags: iphone nagios apple) var addthis_pub…
  3. Howto: Nagios push pessages to your iOS device | erschaffe.de - [...] This is a translation and a shortened version of a howto I found here. [...]
  4. Notification von Nagios ans iPhone | Bits, Bytes and my 5 cents - [...] Dank an Julian für die Idee! Keine Kommentare von Patrick  /  10. August, 2011  /  [...]
  5. Der Brecht hat ein iPhone - [...] von Nagios war irgendwie nicht drin. Nach kurzem googlen fand ich eine Anleitung bei Netways wie man mit Hilfe von…

Einen Kommentar abschicken

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert

Mehr Beiträge zum Thema Nagios

Be a speaker at the OS Monitoring Conference this year!

  We have some strong points for you to be a speaker at the Open Source Monitoring Conference 2018. Add new research to your list - Talk about your newest findings in development at the OSMC. Increase your productivity -  Writing a paper with your findings, tips,...