Nag iOS, Nagios oder das Wetter ist mir nicht genug (Teil 1)

Von | 9. August 2013

Nicht selten kommt es vor, das Nagios als Plattform für ein Monitoring von Services bzgl. Verfügbarkeit/Antwortzeit oder auch für die Überwachung von Basiskomponenten wie z.B. Prozessen oder auch Füllgrad von Filesystemen genutzt wird.

Eine Kombination dieser Daten mit den von vCenter Operations von vSphere analysierten liegt somit auf der Hand. Mit Hyperic existiert eine “Out of the Box” Lösung diese Art von Daten zu integrieren. Im folgenden wird gezeigt wie sich dies für Nagios umsetzen lässt.

Als erstes ist zu klären: Wie komme ich an die Daten in Nagios heran?

Um mit Nagios Performance Daten zu verarbeiten und speichern kommt z.B. das Plugin PNP4Nagios zum einsatz. Hiermit werden die Daten in RRD Files (sog. Round Robin Database Files) – pro Metrik und System ein eigenes – abgelegt. Ein Zugriff hierauf ist mit den rrdtools und dem hierin enthaltenen rrdinfo möglich. Da damit jedes File einzeln abgefragt werden müsste stehen elegantere Wege wie z.B. check_mk zur Verfügung.

Der in check_mk enhaltene Livestatus ist ein Proxy über den die Host/Service Daten via UNIX-Socket abgefragt werden können. Der Charme besteht darin, das ich in einer Konfigurationsinfo an die Schnittstelle sage was ich sehen möchte und wie die Daten formatiert sein sollen. Dann lese ich nur noch und bekomme alle Daten die ich gemäß Konfigurationsinformation angefordert habe.

Vorteil:

  •   – Performant
      – einfach in der Handhabung

Und so könnte das aussehen:

printf 'GET services\nColumns: host_name last_check description perf_data\nSeparators: 10 124 59 20\n' | unixcat /var/spool/nagios/live

GET services
listet die Services die mit Nagios gemonitort werden

Columns: host_name last_check description perf_data
die Informationen zum Hostnamen, Zeit des Checks,
Beschreibung und Messwert werden ausgegeben

Separators: 10 124 59 20
steuert die Formatierung der Ausgabe

unixcat /var/spool/nagios/live
Konfigurationsinformationen werden an den Socket übergeben und Daten daraus gelesen. Tool ist Teil von check_mk

Der Output sieht dann wie folgt aus:

localhost|1376046249|Current Load|load1=0.000;5.000;10.000;0; load5=0.010;4.000;6.000;0; load15=0.050;3.000;4.000;0;
localhost|1376046129|Current Users|users=1;20;50;0
localhost|1376046174|HTTP|time=0.006189s;;;0.000000 size=202B;;;0
localhost|1376046130|PING|rta=0.051000ms;100.000000;500.000000;0.000000 pl=0%;20;60;0
localhost|1376046277|Root Partition|/=1790MB;13003;14628;0;16254
localhost|1376046130|SSH|
localhost|1376040524|Swap Usage|swap=0MB;0;0;0;0
localhost|1376046315|Total Processes|
nagsinthebox|1376046005|HTTP|time=0.005381s;;;0.000000 size=202B;;;0
nagsinthebox|1376046118|PING|rta=0.045000ms;100.000000;500.000000;0.000000 pl=0%;20;60;0
nagsinthebox|1376046230|SSH|
vcops-l-01a.corp.local|1376045829|HTTP|time=0.005420s;;;0.000000 size=374B;;;0
vcops-l-01a.corp.local|1376046153|PING|rta=1.260000ms;100.000000;500.000000;0.000000 pl=0%;20;60;0
vcops-l-01a.corp.local|1376046069|SSH|
vcops-l-01b.corp.local|1376045829|PING|rta=1.103000ms;100.000000;500.000000;0.000000 pl=0%;20;60;0
vcops-l-01b.corp.local|1376045829|SSH|

Zum Vergleich was in der Nagios Console bzw. in check_mk angezeigt wird:nag-02

Somit haben wir die Daten, die wir in vC Ops integrieren wollen.

Teil 2 kümmert sich um die Integration der Daten.

Bis zum nächsten Mal.

Weitere Informationen zu check_mk finden sich auf der Web Site des Projektes.
Ein weiteres Beispiel der Integration von Dritt-Daten anhand von Wetterdaten findet sich hier: “Ist das Wetter normal”

print

Schreibe einen Kommentar

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

Diese Website verwendet Akismet, um Spam zu reduzieren. Erfahre mehr darüber, wie deine Kommentardaten verarbeitet werden.