Reporting mit der Nagios-Familie und Livestatus

27. März 2013 | Von | Kategorie: Monitoring | Availability | StickyBit

top-20-services-jpegEine technische oder auch nicht-technische Berichterstattung über die Verfügbarkeiten von Systemen, Diensten und Geschäftsprozessen ist für einen zukunftsgewandten Betrieb von IT-Infrastrukturen unerlässlich. Hierdurch lassen sich eine Vielzahl unterschiedlichster Wechselwirkungen in der IT-Landschaft besser erkennen, als dies mit einem blossen Monitoring der Fall ist. Darüber hinaus kann auch der Einsatz von Personal und die Kontrolle beauftragter Dienstleister nachhaltig durchgeführt werden.

Für das folgende  Szenario wird auf einen Nagios-/ Icinga-Core mit einem MK_Livestatus-Event-Broker aufgebaut. MK_Livestatus sollte wenigstens in der Version 1.2.1i2 eingesetzt werden. Zum Erstellungszeitpunkt dieses Artikel ist Check_MK in der Version 1.2.0p4 als stable veröffentlicht. Mir sind aber auch in der Version 1.2.2 im produktiven Einsatz keine Fehler aufgefallen, die einem Betrieb im Wege stehen. Wird Check_MK in Kombination mit der OpenMonitoring Distribution (OMD) betrieben sind Updates und Tests neuerer Version eh kein Problem.

top-20-hosts-jpeg

Sind die obengenannten Voraussetzungen erfüllt kann es bereits mit dem Reporting losgehen. Ab der besagten MK_Livestatus-Version steht die Tabelle statehist zur Verfügung. Durch diese Tabelle ist ein direkter Zugriff auf Verfügbarkeiten von Host und Diensten möglich. Das folgende Beispiel soll verdeutlichen, wie der manuelle Zugriff auf die Tabelle funktioniert. Zunächst schreibst du in eine einfache Textdatei, welche Informationen du gerne hättest:


GET statehist
Columns: host_name service_description
Filter: host_name = os-t.spenneberg.net
Filter: time >= 1359612000
Filter: time < 1359698399
Stats: sum duration_part
Stats: sum duration_part_ok
Stats: sum duration_part_warning
Stats: sum duration_part_critical
Stats: sum duration_part_unknown
Stats: sum duration_part_unmonitored
Stats: sum duration
Stats: sum duration_ok
Stats: sum duration_warning
Stats: sum duration_critical
Stats: sum duration_unknown
Stats: sum duration_unmonitored

Anschließend kannst du unter Verwendung von unixcat mit dem Livestatus-Socket eine Verbindung herstellen und nach den gewünschten Informationen fragen.

# unixcat /omd/sites/produktiv/tmp/run/live < statehist
os-t.spenneberg.net;;1.0000000000e+00;1.0000000000e+00;0.0000000000e+00;0.0000000000e+00;0.0000000000e+00;0.0000000000e+00;86398;86398;0;0;0;0
os-t.spenneberg.net;Anmeldung-statischer-kurs;1.0000000000e+00;1.0000000000e+00;0.0000000000e+00;0.0000000000e+00;0.0000000000e+00;0.0000000000e+00;86398;86398;0;0;0;0

top-20-services-with-alerts-jpegDu erhälst bei der Abfrage für den in der Datei mittels Filter hinterlegten Zeitraum und Host die Verfügbarkeiten als auch für alle Dienste, die diesem Host zugeordnet sind. Eine Einschränkung auf spezielle Dienste würde  mit einem entsprechenden Filter umgesetzt.

Die Ausgabe enthält nun neben einer prozentualen Darstellung der Verfügbarkeit auch die absoluten Zahlen auf die vorgegebene Zeitspanne. Mit diesen Daten können nun schön Berichte erzeugt werden. Hierzu übertrage ich regelmässig die mittels Livestatus erhaltenen Verfügbarkeitsdaten in eine Datenbank und kann so mit entsprechenden SQL-Statements Daten zusammenfassen und korrelieren. Genauer werde ich auf diesen Punkt noch in einem weiteren Artikel eingehen.

Als Grundlage für die konkrete Berichtserzeugung dienen die oben aufgeführten Verfügbarkeitsdaten, die in einer Datenbank vorliegen. Mit Hilfe des JasperReport-Servers (es gibt auch eine kostenlose Community-Edition) lassen sich template-basierte Berichte automatisiert erzeugen und zum Beispiel per E-Mail verschicken. Die in diesen Artikel eingebauten Bilder zeigen Auszüge aus  einige Berichten  von OpenSource Training Ralf Spenneberg auf. Hierbei handelt es sich jeweils um einen Bericht, der sich auf die Verfügbarkeiten von Hosts und von Diensten bezieht.

Die Gestaltung der Berichte kann mir dem iReport-Designer vom lokalen Rechner durchgeführt werden. Inwiefern die Gestaltung dann eher einer technischen oder eher ein Geschäftsprozessbasierten Darstellung genügt soll nicht Thema dieses Artikels sein. Da wir im Wesentlichen eine technische Berichterstattung benötigen, sehen unsere Berichte auch eher genauso so aus. 😉

Der folgende Bericht basiert zum Beispiel nicht auf den Verfügbarkeiten, sondern auf einer Auswertung der Log-Nachrichten (ebenfalls mittels Livestatus-Socket/ Tabelle log), die so ohne weiteres nicht möglich wäre. Dennoch ist es für die Sicherstellung des Betriebs unerlässlich festzustellen, welche Dienste häufig ihren Erreichbarkeitszustand wechseln. Und nicht immer wird / soll darüber benachrichtigt werden. Spätestens an diesem Beispiel zeigt sich, welche zusätzlichen Informationen aus dem Monitoring für eine Berichterstattung sinnvoll sein kann. Hierdurch lassen sich zusätzliche Fehlerquellen erkennen und können dann behoben werden. Gleiches gilt auch für den Bericht der Top-20 fehlerbehafteten Dienste, die ebenfalls die entsprechenden Log-Meldungen beim Eintritt des Fehlers enthält.

top-10-flapping-services-jpeg

Das generelle Vorgehen im Rahmen der Berichterstattung ist jedoch in jedem Falle das gleiche. Ich  hole einmalig die Daten, die  in  Berichten benötigt werden und speichere diese für weitere Korrelationen oder Repräsentationen in einer Datenbank. Hierdurch wird das eigentliche Monitoring nicht weiter beeinträchtigt und es existiert ein fortlaufender Datenbestand, mit dem sich verschiedenste Berichte und Korrelationen erstellen lassen.

Bei uns sind die automatisch zum Wochen- bzw. Monatsbeginn erstellten Berichte eine unerlässliche Hilfe geworden, damit unsere Systeme und Dienste auch (fast ;-)) immer das tun, was wir von Ihnen erwarten. Sie sind und bleiben immer noch Maschinen, die von Menschen bedient und genutzt werden.

[UPDATE]

In der Multisite in der Check_MK-Version 1.2.2 ist ebenfalls ein Reporting-Werkzeug enthalten, aus dem sich schnell ein Überblick über die Verfügbarkeiten auf eine Zeitspanne bezogen ergeben. Ob dieses Werkzeug zu mehr als einem Überblick reichen wird, wird die Zukunft zeigen.  Das folgende Bild zeigt einen Screenshot der kommenden Funktionalität. Für alle, die anpassbare und flexible Berichte auch für den Vorstand oder Kunden benötigt, wird nicht drum herum kommen, sich mehr mit den Möglichkeiten von Nagios und Livestatus zu beschäftigen.

Multisite-Reporting

Post to Twitter Post to Yahoo Buzz Post to Delicious Post to Digg Post to Facebook Post to Ping.fm Post to Reddit

Tags: | | | | |

Schreibe einen Kommentar

Fühle dich ermuntert einen Kommentar, Anmerkungen, Hinweise oder deine Ideen zum Thema zu hinterlassen. Wir freuen uns über deine Rückmeldung.