Blog Serie zu Nagios Benachrichtigungen

This entry is part 1 of 5 in the series Nagios Notifications

75699271_cf18da72a2_oEs ist mal wieder Zeit für eine Blog Serie. Nach dem unsere Serien zu MySQL-Tuning und High-Performance Websites recht gut ankamen, versuche ich mich in den nächsten Wochen mal an dem Thema Nagios Benachrichtigungen. Klingt vielleicht auf den ersten Blick nicht so spannend, aber ich glaube dass man gerade durch Optimierungen in diesem Bereich das Monitoring noch wesentlich effektiver machen kann. Beispielsweise durch schnellere Benachrichtigungen, weniger Fehlalarme oder bessere Kanäle.

Ich werden also in den nächste Wochen jeweils immer am Mittwoch einen – hoffentlich neuen – Weg vorstellen, Nagios Benachrichtigungen zu versenden. Folgende Themen habe ich aktuell in der Pipeline:

Wenn Euch noch Themen einfallen oder ein wichtiges Thema fehlen sollte, nehme ich das gerne mit in die Serie auf. Schreibt mir einfach in den Kommentaren.

Julian Hein

Autor: Julian Hein

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.

Nagios Benachrichtigungen mit Growl am Mac

This entry is part 2 of 5 in the series Nagios Notifications

Growl ist ein globales Benachrichtigungssystem für den Mac und informiert den aktuell eingeloggten Benutzer über wichtige Ereignisse. Das System kann man sehr individuell konfigurieren und hat sich inzwischen als defacto Standard für Popup-Benachrichtigungen am Mac etabliert, da es von einer großen Anzahl an beliebten Mac Programmen, beispielsweise Adium, Firefox oder Skype unterstützt wird. Meistens wird es sogar mit einer dieser Programme automatisch mitinstalliert und so dürfte es bei einer großen Anzahl an Mac Usern bereits vorhanden sein.

growl-exNeben lokalen Benachrichtigungen unterstützt Growl auch Nachrichten über das Netzwerk und da es inzwischen auch für Perl ein Growl Modul gibt, kann man diesen Mechanismus sehr einfach verwenden, um sich von seinem Nagios Server über aktuelle Statusmeldungen informieren zu lassen. Hier die Anleitung zum Einrichten der Growl Benachrichtigungen:

  1. Falls man es noch nicht getan hat, installiert man zuerst Growl auf dem Mac. Einfach von der Growl Website herunterladen, die DMG Datei mounten und durch Doppelklick auf Growl.mpkg starten.
  2. Wenn Growl läuft, muss man es so konfigurieren, dass es auch Nachrichten aus dem Netzwerk annimmt. Dazu geht man in die Systemeinstellungen und startet Growl unter Sonstiges. Im Reiter “Netzwerk” setzte man die ersten beiden Haken und vergibt für die Registrierung von Anwendungen ein Passwort:
    einstellungen
  3. Auf dem Nagios Server kommt das erwähnte Perl Modul Net::Growl zum Einsatz. Am einfachsten installiert man das mit Hilfe von CPAN, also “perl -MCPAN -e shell” und dann “install Net::Growl”. Da das Perl Modul kompiliert werden muss, sollte man sicherstellen, dass sich die Build-Tools auf dem System befinden. Unter Debian installiert man die beispielweise durch “aptitude install build-essential”
  4. Das eigentliche Versenden übernimmt ein kleines Perl Script namens grotify.pl, dass man auf unserer Community Plattform netways.org im Script Bereich herunterladen kann.
  5. Das Script einfach auf dem Nagios Server im Verzeichnis für die Eventhandler speichern und ausführbar machen mit “chmod 755 grotify.pl”
  6. Nun empiehlt es sich auszuprobieren, ob alles richtig konfiguriert ist und die Growl Benachrichtigungen korrekt an den Mac übertragen werden. Manuell kann man das beispielsweise durch folgenden Aufruf testen:
    # ./grotify -H IP_Adresse_Mac -a Nagios -p Passwort -t "Nagios Notification" -m "Testalert"

    Wenn alles klappt sollte auf dem Mac ein Popup, wie ganz oben angezeigt werden. Weitere Infos zu dem Script bekommt man mit “./grotify –help”

  7. Nun muss man nur noch in Nagios entsprechende notify-by-grotify Commands einbauen. Hier zwei Beispiele für Hosts und Services:
    define command {
        command_name  notify-host-by-grotify
        command_line  $USER2$/grotify -H IP_Adresse -p Passwort -a Nagios -t "Nagios Notification" -m "$NOTIFICATIONTYPE$ Alert $HOSTNAME$ is $HOSTSTATE$"
     }
    
     define command {
        command_name  notify-service-by-grotify
        command_line  $USER2$/grotify -H IP_Adresse -p Passwort -a Nagios -t "Nagios Notification" -m "$NOTIFICATIONTYPE$ Alert $HOSTNAME$/$SERVICEDESC$ is $SERVICESTATE$"
     }

Viel Spaß mit den Growl Benachrichtigungen. Nächste Woche geht es in dieser Serie um die schnellste und einfachste Möglichkeit Benachrichtigungen per SMS zu versenden.

Julian Hein

Autor: Julian Hein

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.

Nagios Benachrichtigungen per iPhone Push

This entry is part 3 of 5 in the series Nagios Notifications

Eigentlich hatte ich letzte Woche ja geschrieben, dass ich mich in dieser Woche mit SMS Benachrichtigungen beschäftigen will. Weil aber das Growl Thema von letzter Woche so gut ankam, werde ich lieber nochmal bei Growl nachlegen. Und das SMS Thema hat auch noch Zeit bis nächste Woche.

Mit iPhone OS 3.0 hat Apple ja nun endlich die Möglichkeit implementiert sogenannte Push Benachrichtigungen in realtime an ein iPhone zu versenden. Mit dieser Technik bietet sich nun ein einfacher und vor allem auch kostengünstiger Weg, das ganze auch für Nagios Benachrichtigungen zu verwenden. Zur technischen Implementierung gibt es Prowl, was so viel ist wie ein Growl Client für das iPhone. Das hatte ich ja letzte Woche vorgestellt um Benachrichtigungen von Nagios in realtime am Mac anzuzeigen. Diese Woche werden wir nun genau diese Growl Benachrichtigungen weiter an das iPhone pushen.

IMG_0287Gegenüber einer SMS hat Prowl vor allem einen klaren Vorteil bei den Kosten. Denn nach dem Kauf der iPhone App für aktuell 2,39 EUR, fallen keine weiteren Kosten an. Während eine SMS ja jedes mal beim Versenden etwas kostet. Im Vergleich zur ebenfalls kostenlosen eMail hat die Push Notification außerdem einen Geschwindigkeitsvorteil. Und zusätzlich bietet Prowl eine Historie aller Meldungen der letzten 30 Tage.

Interessant ist auch das Zusammenspiel mit dem Mac: Man kann Growl so einstellen. dass es nur dann Benachrichtigungen auf das iPhone weiterleitet, wenn der Rechner gerade im idle Mode ist oder diese Nachrichten eine bestimmte Mindestpriorität haben.

IMG_0286Wenn Ihr also nun überzeugt seit, sind folgende Schritte notwendig um sich Nagios Meldungen an das iPhone pushen zu lassen:

  1. Zuerst muss Growl eingerichtet sein und der Nagios Server seine Benachrichtigungen an einen Mac senden. Eine entsprechende Anleitung hatte ich letzte Woche hier gepostet.
  2. Melden Sie sich bei Prowl an und erstellen Sie sich unter Register einen Account. Durch diesen Service werden später die Benachrichtigungen an das iPhone versendet.
  3. Downloaden und installieren Sie das Growl Plugin. Nach dem Download das Zip-File entpacken und auf die Datei “Prowl.growlView” doppelklicken.
  4. Anschliessend werden Sie gefragt, ob Sie das Plugin gleich konfigurieren wollen, beantworten Sie die Frage mit Ja. Auf der Konfigurationsseite des Plugins geben Sie Ihre Prowl Accountdaten aus Schritt 2 an und klicken Sie Verify. Die anderen Optionen können Sie beispielsweise so angeben:
    prowl_growl_preferences
  5. Zuletzt muss nur noch auf Ihrem iPhone die Prowl Applikation installiert und konfiguriert werden. Mit diesem Link gelangen Sie direkt in den Appstore, wo Sie den Prowl Client für aktuell 2,39 EUR kaufen können. Danach fallen übrigens keine Kosten mehr an, d.h. der Versand der eigentlichen Nachrichten ist im Gegensatz zu SMS kostenlos. Nach der Installation starten Sie die Applikation und geben dort ebenfalls Ihren Prowl Usernamen und Ihr Passwort ein.
  6. Damit ist die Einrichtung fertig. Wie schon bei Growl, können Sie auch Prowl manuell testen, indem Sie auf dem Nagios Server folgendes eingeben:
    # ./grotify -H IP_Adresse_Mac -a Nagios -p Passwort -t "Nagios Notification" -m "Testalert"

Viel Spass mit den gepushten Benachrichtigungen. Nächste Woche geht es dann aber wirklich um SMS, insbesondere den einfachsten, schnellsten und vor allem kostengünstigsten Weg SMS Benachrichtigungen zu implementieren.

Julian Hein

Autor: Julian Hein

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.

SMS versenden – aber möglichst günstig

This entry is part 4 of 5 in the series Nagios Notifications

Um den Admin auch Nachts und am Wochenende zu alarmieren, gibt es zu SMS eigentlich kaum eine Alternative. Handy hat inzwischen jeder und nichts ist kompatibler mit allen Endgeräten. Im Vergleich zu den letzten Jahren, kommen SMS inzwischen auch vergleichsweise zuverlässig an, wenn das Nagios System nicht gerade an Weihnachten oder Sylvester ein Probleme melden will.

3194571738_970b4a62fb_oUm die SMS technisch zu versenden gibt es inzwischen unzählige Möglichkeiten: Vom speziellen SMS Dienstleister über ISDN Dialup, bis hin zu eigenen SMS Modems. In diesem Artikel soll es aber nicht darum gehen, was die besten Methode ist eine SMS Benachrichtigung zu implementieren, sondern welche Methode am einfachsten und am kostengünstigsten eingerichtet werden kann: Inzwischen bieten alle vier deutschen GSM Anbieter ihren Kunden eine eMail2SMS Schnittstelle. Nach der einmaligen Freischaltung per SMS braucht man nur noch eine eMail an seine persönliche SMS E-Mail Adresse zu senden und hat das ganze nur Sekunden später als SMS auf dem Handy. Schneller und billiger kommt man nicht zu den SMS.

Wir funktioniert das ganze nun?

Ganz einfach. Aus der nachfolgenden Tabelle sucht man sich die passenden Daten zu seinem Mobilfunkanbieter und schickt den Aktivierungstext per SMS an die angegebene Nummer. Danach bekommt man vom Provider eine Bestätigungs-SMS zuruck und das Gateway ist freigeschaltet. Um eine SMS zu verschicken, benutzt man einfach die angebenene E-Mail Adresse und ersetzt xxx mit der Mobilnummer inkl. Vorwahl, also beispielsweise 01721234567@vodafone-sms.de.

Vodafone T-Mobile E-Plus O2
Nummer 3400 8000 7676245 6245
Aktivierung OPEN OPEN START OPEN
Deaktivierung CLOSE CLOSE STOP STOP
Preis 0,20 EUR 0,19 EUR 0,20 EUR 0,19 EUR
E-Mail Adresse xxx@vodafone-sms.de xxx@t-mobile-sms.de xxx@smsmail. eplus.de xxx@o2online.de

Bei E-Plus muss der komplette Inhalt der Nachricht in der Betreff Zeile der E-Mail stehen. Die anderen Anbieter verwenden Betreff und Inhalt der E-Mail und hängen beides in der SMS einfach hintereinander.

Auch wenn die Einrichtung dieser SMS Benachrichtigungen schnell und einfach funktioniert, sollen die Nachteile auch nicht verschwiegen werden: Im Fehlerfall muss Ihr Nagios Server immer noch eine E-Mail an einen externen Empfänger senden können und das verlangt eine Vielzahl funktionierender Systeme. Es müssen Internetanbindung, Mailserver, DNS, Firewall und vermutlich viele andere Komponenten noch verfügbar sein und gerade bei einem Ausfall ist das nicht immer sicher. Dazu kommen die vergleichsweise hohen Kosten pro SMS. Wenn der Nagios Server nicht optimal konfiguriert ist, kann es gut sein, dass Nagios bei einem Switchausfall mehrere Hundert SMS versenden will. Und das würde schnell sehr teuer für den Handybesitzer werden, denn diese SMS werden vom Empfänger bezahlt. Wenn man auf Nummer sicher gehen will, kommt man also an einem eigenen SMS Gateway kaum vorbei. Will man allerdings nur mal schnell SMS in Betrieb nehmen, ist die vorgestellte Lösung sicher eine gangbare Alternative.

Julian Hein

Autor: Julian Hein

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.

Benachrichtigungen per Twitter versenden

This entry is part 5 of 5 in the series Nagios Notifications

Heute machen wir es uns mal richtig leicht und binden Twitter als Benachrichtigungslösung für Nagios ein. Die Einrichtung dauert geschätzte 30 Sekunden, denn man muss lediglich die folgenden Notification Commands in Nagios einbinden. Nur falls man Curl noch nicht auf dem System hat, müsste man das noch schnell installieren. Unter Debian reicht dazu ein “aptitude install curl” und fertig.

define command {
        command_name    notify-by-twitter
        command_line    /usr/bin/curl --basic --user "user:password" --data-ascii "status=[Nagios] $NOTIFICATIONTYPE$ $HOSTALIAS$/$SERVICEDESC$ is $SERVICESTATE$" http://twitter.com/statuses/update.json
}

define command {
        command_name    host-notify-by-twitter
        command_line    /usr/bin/curl --basic --user "user:password" --data-ascii "status=[Nagios] $HOSTSTATE$ alert for $HOSTNAME$" http://twitter.com/statuses/update.json
}

Das wars eigentlich schon. Wenn Nagios nun eine Benachrichtigung per Twitter schickt, sieht das im Webinterface ungefähr so aus:
twitter

Auch wenn Twitter als Benachrichtigungsweg auf den ersten Blick eher wie eine Spielerei aussieht, kann man diesen Weg doch sinnvoll einsetzen, denn Twitter bietet gegenüber den anderen Benachrichtigungskanälen einige Vorteile. Da es inzwischen für so gut wie alle Betriebssysteme, Plattformen und auch Smartphones Twitter Clients gibt, kann man es fast als plattformübergreifend bezeichnen. Es ist kostenlos und man kann in den Account Einstellungen angeben, dass nicht jederman die Updates sehen kann. Durch den Follow-Mechanismus wird es möglich, dass sich einzelne Mitarbeiter selbst in die Benachrichtigungen einklinken können, ohne dass man am Server etwas konfigurieren muss.

Problematisch bleibt natürlich die Zuverlässigkeit. Gerade bei großen Ereignissen hatte Twitter in den letzten Jahren immer mal wieder mit kürzeren und längeren Ausfällen zu kämpfen. In Kombination mit einem anderen Übertragungsweg, der wichtige und dringende Meldungen sicher übermittelt, kann Twitter aber schon Sinn machen.

Für alle die Twitter sowieso schon nutzen, an dieser Stelle nochmal der Hinweis, dass NETWAYS auch twittert. Unter http://twitter.com/netways können Sie unsere Tweets (nein, nicht die Nagios Fehlermeldungen) abonieren und immer auf dem laufenden bleiben.

Julian Hein

Autor: Julian Hein

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.