Seite wählen

NETWAYS Blog

Serie NSClient++ – Teil 1: Grundlagen

nswideZur Überwachung von Windows Servern mit Nagios oder Icinga hat sich mittlerweile der NSClient++ als Agent auf dem System etabliert.

Er bietet die Möglichkeit sowohl per „check_nt“ als altes Verfahren und auch mittels NRPE Abfragen auf dem Windows System durchzuführen. Grundsätzlich sind die Abfragen in verschiedene Module gegeliedert, nennenswert an dieser Stelle sind:

  • CheckDisk – prüft die Festplattenauslastung
  • CheckEventLog – prüft Einträge im Eventlog
  • CheckSystem – prüft Prozesse, Dienste, CPU Auslastung, …

sowie

  • CheckHelpers – biete weitergehende Möglichkeiten zur Prüfungsausführung

Jedes dieser genannten Module bietet diverse Sub-Module um Abfragen auszuführen, die Parametrisierung der einzelnen Checks ist hierbei ähnlich.
Im weiterem Verlauf der Blogserie werden die Installation und Konfiguration wie auch diverse Checks und deren Aufruf vorgestellt. Die Kommunikation zum überwachten System findet hierbei ausschließlich per verschlüsseltem NRPE statt.

Jasper Reporting – Eine Einführung

Jasper-Reporting
Reporting & Business Intelligence – Ein ungeliebtes Thema?
Gerade der zweite Begriff erklärt schon recht gut, wo eigentlich die Wurzeln dieser Technologien liegen. Natürlich im Business Feld, denn noch vor einigen Jahen wurden mit den entsprechenden Tools hauptsächlich betriebswirtschaftliche Zahlen analysiert und ausgewertet. Also beispielsweise Vertriebszahlen, Umsätze oder Daten aus dem Produktionsbereich. Doch in letzter Zeit sind diese Tools und Werkzeuge auch immer mehr in den IT Bereich eingedrungen. Kein Wunder, denn SLAs, Verfügbarkeitsreports und andere Statistiken, werden ziemlich ähnlich aufbereitet und errechnet.
So haben auch wir uns in den letzten Jahren immer mehr mit dem Thema Reporting beschäftigt. Zuerst natürlich in den Monitoring Projekten: Wo es früher vielleicht noch ausreichend war, einzelne Fachabteilungen hin- und wieder mit einem manuell erstellten Excel Report zu besänftigen, wird heute meistens mehr erwartet. Selbst die internen Kunden einer IT Abteilung wollen heute genau wissen, welche Leistungen erbracht wurden, wie die Hardware ausgelastet war und welche Verfügbarkeiten in der Praxis erreicht wurden. Das lässt sich nur noch sehr schwer manuell ad hoc erstellen. Aber auch unsere Managed Services Kunden wollen immer besser und aktueller informiert werden und bekommen inzwischen von uns jeden Monat eine komplette Übersicht aller Aktivitäten, wie beispielsweise Tickets, Traffic, Domains oder Auslastungswerte.
Schön, dass parallel dazu in den letzten Jahren auch immer mehr Open Source Lösungen, wie Pentaho, Eclipse Birt und Jasper zum Thema Reporting auf den Markt gekommen sind. Einige Möglichkeiten, die diese Programme nun bieten haben wir zum einen schon im letzten Jahr auf unserer Open Source Monitoring Conference und dann auch wieder auf dem Nagios Workshop in Kassel vorgestellt und nun möchten wir unseren Lesern hier im Blog einen Einblick in dieses Thema ermöglichen und einige konkrete Einsatzszenarien auf Basis von Jasper Reporting aufzeigen.
Von der Installation der Serverkomponenten, über die Erzeugung von Reports mit dynamischer Parametrisierung und Darstellung von Informationen in Diagrammen bis hin zur automatischen Versendung der erstellten Reports, soll die Serie Hilfestellung geben und den Einstieg erleichtern. Geplante Themen sind:

  • Installation des Servers
  • Verwendung von iReport
  • Einfach Reports und Design-Tips
  • Statische und dynamische Parameter
  • Gruppierung von Daten
  • Verwendung von Diagramme
  • Anzeige von aktuellen Nagios-Daten
  • SLA-Reporting
  • Automatische Versendung
  • uvm.

Besonders Neugierige können auf unsere Website schon vorab Informationen finden und unter jasper.demo.netways.de einen Blick auf das Demo-System werfen. Wenn Sie keinen Teil dieser Serie verpassen wollen, empfehlen wie Ihnen unseren RSS Feed zu abonnieren oder uns via Twitter zu folgen.

Bernd Erk
Bernd Erk
CEO

Bernd ist Geschäftsführer der NETWAYS Gruppe und verantwortet die Strategie und das Tagesgeschäft. Bei NETWAYS kümmert er sich eigentlich um alles, was andere nicht machen wollen oder können (meistens eher wollen). Darüber hinaus startete er früher das wöchentliche Lexware-Backup, welches er nun endlich automatisiert hat. So investiert er seine ganze Energie in den Rest der Truppe und versucht für kollektives Glück zu sorgen. In seiner Freizeit macht er mit sinnlosen Ideen seine Frau verrückt und verbündet sich dafür mit seinen beiden Söhnen und seiner Tochter.

Twitter Development – Zusammenfassung

twitter-tIn den letzten Wochen, haben wir den Großteil der vorhandene API-Funktion, welche durch Twitter bereitgestellt werden, angeschnitten. Was mich persönlich begeistert ist die Möglichkeit, sämtliche Objekte des Twitterverse im Gesamtkontext mit Suchen, Replies und Inhalten zu sehen.
Gleichzeitig erklärt die Einfachheit der API auch die massive Anzahl an Twitter-Clients, die am Markt verfügbar sind. Genau dieses Ansatz ist beispielhaft und kann auch anderen Diensten zum Erfolg verhelfen. Auch anderen Diensten wie z.B. Facebook brachte die Möglichkeit der Integration und Anbindung zahllose Entwickler und eine große Community.
Eine vollständige Liste der API-Calls ist im Twitter API Wiki zu finden und wer Zeit und Lust hat kann aufbauend auf den gezeigten Beispielen welche auch hier zum Download bereitstehen einen tieferen Blick hinter Kulissen werfen.
Hier noch mal eine Liste der Blogposts zum Thema:

  • Verbindung mit Twitter aufbauen
  • Informationen über den eigenen User ermitteln
  • Friends und Followers
  • Private und Public Timelines
  • Nachrichten Empfangen und Versenden
  • Replies und Mentions
  • Suche von Tweets
  • Zusammenfassung

Meine nächste Blog Serie ist schon in Arbeit und geht in Richtung Open Source Reporting.

Bernd Erk
Bernd Erk
CEO

Bernd ist Geschäftsführer der NETWAYS Gruppe und verantwortet die Strategie und das Tagesgeschäft. Bei NETWAYS kümmert er sich eigentlich um alles, was andere nicht machen wollen oder können (meistens eher wollen). Darüber hinaus startete er früher das wöchentliche Lexware-Backup, welches er nun endlich automatisiert hat. So investiert er seine ganze Energie in den Rest der Truppe und versucht für kollektives Glück zu sorgen. In seiner Freizeit macht er mit sinnlosen Ideen seine Frau verrückt und verbündet sich dafür mit seinen beiden Söhnen und seiner Tochter.

Nagios Benachrichtigungen direkt an iPhone pushen

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.

Serie High Performance Websites – Zusammenfassung

LogoZusammenfassung der Serie über High Performance Websites.
In dieser Artikelserie haben wir versucht einen kurzen Einblick in die Optimierung von Server, Sourcecode und Infrastruktur in Bezug auf Performance zu geben.
Für Feedback oder Anregungen sind wir selbstverständlich jederzeit offen und freuen uns über jede Kontaktaufnahme.