Aus Linux-Magazin 05/2014

Monitoring mit Zabbix

© Andrey Lavrushov, 123RF

Die Monitoringsoftware Zabbix ist Open Source und lässt sich bequem über eine Weboberfläche einrichten. Templates machen die Konfiguration größerer Anzahlen von Hosts und Diensten leichter, dazu gibt es Mail-Benachrichtigungen und Enterprise-Support.

Die Monitoringlösung Zabbix [1] steht komplett unter GPLv2. Besonderen Wert legen ihre Entwickler auf die Unterstützung fast aller Betriebssysteme sowie die verständliche Bedienung mit einer modernen Weboberfläche. Neben dem eigenen Agenten und SNMP kann Zabbix viele weitere Datenquellen anzapfen. Umfangreiche Möglichkeiten zur Visualisierung der Daten sind fester Bestandteil der Software.

Zabbix wird hauptsächlich über das Web-GUI konfiguriert und bedient. Für fortgeschrittene Benutzer steht ein HTTP-Json-API mit Klassenbibliotheken in allen gängigen Programmiersprachen zur Verfügung. Zusätzlich gibt es das Kommandozeilen-Werkzeug »zabcon« [2] und zahlreiche Apps für mobile Geräte [3].

Drei Schritte

Stark vereinfacht lässt sich die Funktionsweise des Zabbix-Servers in drei Prozessschritte unterteilen: Daten sammeln, Daten auswerten, Aktionen ausführen. Am Anfang steht das Sammeln. Der Server ruft Daten entweder aktiv ab (als Poller) oder er wartet, dass Daten angeliefert werden (als Trapper). Am Ende der Datensammlung steht immer ein Datensatz mit vier Feldern. Sie geben an, wen Zabbix überwacht (Host), was es überwacht (Item, Datenpunkt), welchen Wert es für das Item gemessen hat (Item Value, Messwert) und wann der letzte Wert gemessen wurde (Lastclock, Datum und Uhrzeit).

Sobald für ein Item neue Messwerte vorliegen, vergleicht Zabbix die Ist-Werte mit Soll-Werten und führt die so genannten Trigger aus. Entspricht ein Ist- nicht dem Soll-Wert, nimmt der Trigger den Zustand »Problem« an. Andernfalls bleibt der Zustand »OK« bestehen.

Sobald ein Trigger seinen Status verändert, führt Zabbix konfigurierte Aktionen aus. Je nach Host, Hostgruppe, Trigger oder Item sind bestimmte Aktionen zuständig, sie senden dann Mails oder SMS oder führen beliebige Skripte aus.

Nach der Installation von Zabbix (siehe Kasten “Zabbix-Pakete”) ist vor der Inbetriebnahme noch eine PHP-Einstellung anzupassen. In der Datei »/etc/php5/apache2/php.ini« trägt der Admin die Zeitzone wie folgt ein:

[Date] ;
date.timezone = Europe/Berlin

Wer das Zabbix-Frontend in deutscher Sprache verwenden möchte, führt zudem noch folgendes Kommando aus:

locale-gen de_DE

Diesem Artikel liegt aber das englischsprachige Frontend zugrunde, die deutsche Fassung setzt mitunter gewöhnungsbedürftige Bezeichnungen.

Zabbix-Pakete

Dank eines gut gepflegten Repository mit Binärpaketen für Red Hat, Ubuntu und Debian ist die Installation der Zabbix-Komponenten schnell erledigt. Nutzer von Suse Linux bleiben allerdings außen vor und müssen Zabbix aus den Quellen installieren.

Von der in Ubuntu 12.04 LTS enthaltenen veralteten Version 1.8.11 ist abzuraten. Listing 1 zeigt, wie man aus dem Zabbix-Repository die aktuelle Version 2.2.2 installiert.

Listing 1

Aktuelles Ubuntu-Paket installieren

01 wget http://repo.zabbix.com/zabbix/2.2/ubuntu/pool/main/z/zabbix-release/zabbix-release_2.2-1+precise_all.deb
02 dpkg -i zabbix-release_2.2-1+precise_all.deb
03 apt-get install zabbix-server-mysql zabbix-frontend-php zabbix-agent zabbix-sender

Nach einem Neustart des Apache-Webservers komplettiert der Admin die Installation über das Webfrontend. Es ist unter »http://IP-Adresse/zabbix/« zu erreichen. Wer dabei die Option zum Generieren eines zufälliges MySQL-Passworts verwendet hat, findet das erzeugte Passwort mit

grep DBPassword /etc/zabbix/zabbix_server.conf

heraus und trägt es zusammen mit dem Benutzernamen »zabbix« bei den Datenbank-Zugangsdaten ein. Bei den Zabbix-Server-Details bestätigt der Administrator die voreingestellten Werte »localhost« und »10051« . Das Feld »Name« nimmt einen Wunschnamen für den Zabbix-Server entgegen. Anschließend kann man sich mit dem Benutzer »Admin« und dem Passwort »zabbix« zum ersten Mal am Webfrontend anmelden.

Monitoring einrichten

Zabbix kann seine Qualitäten erst richtig ausspielen, wenn man damit viele Hosts überwacht. Für weniger als zehn Rechner lohnen sich die Mühen der Konfiguration in der Regel nicht. Das modulare Konzept von Zabbix macht mehrere Schritte zum Einrichten von Checks notwendig.

Dem Neuling mag das als kompliziert erscheinen, wer aber einmal das Konzept verstanden hat, kommt künftig flott voran. Zudem sind manche Konfigurationsschritte nur ein einziges Mal durchzuführen. In einem gut eingerichteten Setup ist das Einbinden weiterer Hosts ins Monitoring dann nur eine Sache von Minuten. Unter [4] findet sich ein Video-Tutorial, das die folgende Anleitung noch anschaulicher macht.

Hosts und Items

Um einen neuen Host anzulegen, klickt der Anwender im Hauptmenü auf »Configuration | Hosts | Create Host« . Ein Host kann dabei jede Art von Gerät im Netzwerk sein, sofern es über eine IP-Adresse oder einen DNS-Namen verfügt. Ob der Zabbix-Agent auf diesem Host installiert ist, spielt für den ersten Test keine Rolle. Danach wählt der Admin aus, ob er den Host per IP-Adresse oder DNS-Namen ansprechen möchte, und füllt mindestens eines dieser Felder aus. Wer den Host per DNS-Namen überwachen will, klickt zusätzlich auf die Schaltfläche »DNS« , die dann hellblau hinterlegt wird. Alle anderen Eingabemöglichkeiten und Reiter ignoriert er vorerst und legt den Host mit »Save« an (Abbildung 1).

Abbildung 1: Mit wenigen Angaben ist auf der Zabbix-Oberfläche der KVM-Gast als erster Host eingerichtet.

Abbildung 1: Mit wenigen Angaben ist auf der Zabbix-Oberfläche der KVM-Gast als erster Host eingerichtet.

Nach dem Speichern zeigt die Oberfläche die Liste der Hosts einschließlich des soeben angelegten. Ein Klick auf den Link »Items« öffnet eine zunächst noch leere Liste. Rechts oben findet sich der Link »Create Item« , um ein neues Item zu erzeugen. Der erste Test soll prüfen, ob der KVM-Gast auf ICMP-Pings antwortet. Es empfiehlt sich, dem Item im Feld »Description« eine aussagekräftige Bezeichnung zu geben, etwa »Ping Check« .

Einen Ping-Test führt der Zabbix-Server ohne Hilfe des Agenten durch (Abbildung 2). Daher erhält das Item im Menü »Type« den Wert »Simple Check« . Zabbix generiert automatisch einen internen Schlüssel für das Item. Der Knopf »Select« führt zu einer Auswahl, in der man »icmpping« auswählt. Sogleich übernimmt die Benutzeroberfläche die Zeichenkette »icmpping[<ip>,<count>,<interval>,<size>,<timeout>]« in das Feld »Key« . Für diesen ersten Test gibt es keine Optionen, weshalb der Admin diese inklusive der spitzen Klammern löscht.

Abbildung 2: Ein einzelner Check heißt bei Zabbix Item. Der Ping-Test kommt ohne den Agenten aus.

Abbildung 2: Ein einzelner Check heißt bei Zabbix Item. Der Ping-Test kommt ohne den Agenten aus.

In den anderen Feldern bleiben die vorgegebenen Standardwerte stehen, mit Ausnahme von »New application« . Als Application bezeichnet Zabbix eine Gruppe von Items, die eine Einheit bilden. Daher legt der Anwender für dieses erste Item die neue Gruppe »Availability« an und schließt das Anlegen des Item mit »Save« ab. In der Liste der Items ist nun der »Ping Check« zu finden.

Messdaten ablesen

Bevor der Admin den Messwert des ersten Item mit einem Trigger verarbeitet, stellt er sicher, dass Zabbix die Daten auch korrekt einsammelt. Sofern keine Fehler aufgetreten sind, sollten sich nun im Menü »Monitoring | Latest Data« der erste Host und die neu angelegte Application »Availability« finden. Ein Klick auf das Plussymbol links neben der Application »Availability« zeigt die Werte der Items sowie den Zeitpunkt der letzten Aktualisierung. Im Fall des Ping-Tests bedeutet der Wert 1, dass Ping erfolgreich war (Abbildung 3). Der Host ist erreichbar.

Abbildung 3: Der Ping-Check zeigt den Wert 1 – der Host ist erreichbar.

Abbildung 3: Der Ping-Check zeigt den Wert 1 – der Host ist erreichbar.

Nun kann der Admin testen, ob der Zabbix-Server es bemerkt, wenn dieser KVM-Gast nicht mehr erreichbar ist, indem er ihn ausschaltet. Nach kurzer Zeit sollte eine Änderung des Werts von »Ping Check« zu sehen sein – er sollte auf 0 wechseln. Funktioniert dieser erste Test nicht, empfiehlt sich ein Blick in die Liste der Items. Kann Zabbix die Daten eines Item nicht abrufen, zeigt es meist einen Hinweis auf den Fehler in der Spalte »Error« . Wer die Maus über das rote Fehlersymbol setzt, dem zeigt der Tooltipp sachdienliche Hinweise zum Fehler.

Trigger einrichten

Erfasst Zabbix die Werte des ersten Item korrekt, geht es ans Einrichten des ersten Triggers. Er vergleicht den gemessenen Wert mit einem Soll-Wert. Dazu klickt der Anwender im Hauptmenü auf »Configuration | Hosts« und wählt rechts oben über das Dropdown die Gruppe »All« aus. In der Liste der Hosts klickt er dann in der Zeile des KVM-Gastes rechts neben dem Hostnamen auf den Link »Triggers« und dann auf »Create Trigger« . Der neue Trigger sollte einen aussagekräftigen Namen erhalten, etwa »Ping Check Failed« , denn der bildet später die Betreffzeile für E-Mail-Benachrichtigungen.

Die so genannte »Expression« wählt man über den Knopf »Add« aus und legt fest, bei welcher Bedingung der Trigger den Status »Problem« annehmen soll. Eine Expression setzt sich zusammen aus dem Wert eines Item und dem Vergleich mit einem anderen Wert, in der Regel einem festen Schwellenwert. Der Button »Select« wählt das Item für den neuen Trigger aus. Nach einem Klick auf das Item schließt sich das Fenster, und im Feld »Item« sollte nun »KVM-Gast: Ping Check« eingetragen sein.

Obwohl der Bediener Trigger für einen bestimmten Host anlegt, kann er dennoch Items anderer Hosts für den Trigger verwenden. Deshalb ist bei der Auswahl des Item noch einmal der Host anzugeben, auch wenn es in der Regel derselbe ist. Im Feld »Function« darf der Standard »Last value = N« und »N=0« stehen bleiben. Das bedeutet, der Trigger nimmt den Status »Problem« an, wenn der letzte gemessene Wert des Item »Ping-Check« für den Host »KVM-Gast« gleich null ist.

Ist die »Expression« definiert, wird es Zeit, in den ersten Dialog zur Konfiguration eines Triggers zurückzukehren. Dort wählt man noch die »Severity« (Dringlichkeit) dieses Triggers aus. Für den Anfang ist die Severity »Information« eine gute Wahl. Unter dem Menü-Eintrag »Monitoring | Triggers« ist jetzt der Status des Triggers abzulesen. Für den gerade angelegten sollte er »OK« sein. Wer den KVM-Gast nun herunterfährt, kann prüfen, ob der Trigger reagiert. In der Trigger-Übersicht sollte dessen Status von »OK« zu »Problem« wechseln.

Funktioniert der eingerichtete Trigger, kann man den ersten Alarm per E-Mail verschicken. Zum Versenden sind noch zwei Schritte nötig: das Konfigurieren des Mailservers und das Einrichten einer Aktion. Im Menüpunkt »Administration | Mediatypes« klickt der Anwender dazu in der Spalte »Description« auf »E-Mail« und gibt einen SMTP-Server sowie die Absenderadresse an, mit der Zabbix die E-Mails verschicken soll.

Der nächste Schritt legt die E-Mail-Adresse fest, an die Zabbix die Mails schicken soll. Dazu klickt man ganz oben rechts auf den Link »Profile« , wählt den Reiter »Media« aus und klickt auf »Add« . Das Feld »Send to« nimmt die E-Mail-Adresse auf. Für den ersten Test wählt der Anwender alle Dringlichkeitsstufen aus und belässt im Feld »When active« die Standardwerte (Abbildung 4).

Abbildung 4: Dieser Dialog dient zum Einrichten einer Mail-Benachrichtigung.

Abbildung 4: Dieser Dialog dient zum Einrichten einer Mail-Benachrichtigung.

Anschließend klickt er im Hauptmenü auf »Configuration | Actions« und wählt rechts oben als »Event Source« den Eintrag »Trigger« aus. In der Liste der Aktionen findet sich bereits die Standardaktion »Report problems to Zabbix administrators« , die bei Problemen Mails an die Admins schickt. Ein Klick auf den roten Link »Disabled« aktiviert sie, anschließend ist die Betreffzeile für die Nachrichten anzupassen.

Als Standard-Betreff für die ausgehende Nachricht schlägt Zabbix »{TRIGGER.STATUS}: {TRIGGER.NAME}« vor. Die Änderung in »{HOSTNAME} {TRIGGER.STATUS}: {TRIGGER.NAME}« bewirkt, dass der Betreff auch den Hostnamen des Systems angibt, bei dem ein Problem vorliegt. Schaltet jemand nun den KVM-Gast ab, geht eine Mail-Benachrichtigung an die eingestellte Adresse.

Templates sind Trumpf

Die bisherigen Absätze haben die generelle Funktionsweise und das Konzept hinter Items, Triggern und Aktionen verdeutlicht. In der Praxis richten Admins die Checks, also das Item-Trigger-Paar, meist in einem Template ein und wenden diese Vorlage dann auf viele Hosts an. Zabbix bringt eine Vielzahl von Templates mit. Diese dienen aber in erster Linie dazu, die Leistungsfähigkeit der Software zu demonstrieren und sind nicht für den produktiven Einsatz geeignet.

Unter [5] stellt der Autor dagegen einen Satz von Templates bereit, mit dem sich die Aufgaben dieses Magazin-Schwerpunkts abdecken lassen. Dazu lädt man etwa das Template »base-linux-template.xml« herunter. Nach einem Klick auf »Configuration | Templates« lässt sich die Datei über den Button »Import« rechts einspielen. Nun steht eine neue Gruppe von Templates mit der Bezeichnung »Easymonitoring« zur Auswahl.

Anschließend ruft der Anwender über »Configuration | Hosts« nochmals die Verwaltung der Hosts auf. Dort klickt er in der Spalte »Name« auf den Hostnamen »KVM-Gast« und gelangen so wieder in den Dialog, über den er den Host zuvor angelegt hat. Der Benutzer wählt den Reiter »Templates« aus und weist dem Host die Templates »Combined Linux« , »HTTPD Passive« , »Samba Server« und »FTPD Passive« zu.

Sofern noch nicht geschehen, installiert er auf dem KVM-Gast noch den Zabbix-Agenten. In der Datei »/etc/zabbix/zabbix_server.conf« ist der Server einzutragen, der berechtigt ist den Agenten abzufragen. Unter »Monitoring | Latest Data« ist danach eine Reihe von Messwerten zu sehen, darunter auch die Auslastung von CPU und Festplatte. Im Bereich »Monitoring | Graphs« gibt es außerdem Standardgraphen zu CPU- und Netzwerkauslastung (Abbildung 5). Wer den Samba-Dienst stoppt, sollte nun einen Alarm per E-Mail erhalten.

Abbildung 5: Zabbix stellt Größen wie die CPU-Auslastung und deren Verlauf in Graphen dar.

Abbildung 5: Zabbix stellt Größen wie die CPU-Auslastung und deren Verlauf in Graphen dar.

Fazit: Das Konzept von Zabbix ist modular und Templates ermöglichen die schnelle Aufnahme von Hosts ins Monitoring. Die Daten stellt eine Weboberfläche übersichtlich tabellarisch oder in Graphen dar. Proxys für das Monitoring von entfernten Standorten und ein API zum Skripten von Abläufen runden den Funktionsumfang ab.

Zabbix wird aktiv weiterentwickelt, der Hersteller Zabbix SIA in Lettland und ein internationales Partnernetzwerk bieten außerdem kommerziellen Support an. Im Internet gibt es viele Informationen und Dokumentation in deutscher und englischer Sprache. (mhu)

Der Autor

Thorsten Kramm ist Consultant bei dem deutschen Zabbix-Partner DV-Lösungen Schreiner GmbH. Sein Zabbix-Kow-how und seine Erfahrungen veröffentlicht er unter den URLs http://lab4.org/wiki und http://easy-monitoring.com.

DIESEN ARTIKEL ALS PDF KAUFEN
EXPRESS-KAUF ALS PDFUmfang: 4 HeftseitenPreis €0,99
(inkl. 19% MwSt.)
LINUX-MAGAZIN KAUFEN
EINZELNE AUSGABE Print-Ausgaben Digitale Ausgaben
ABONNEMENTS Print-Abos Digitales Abo
TABLET & SMARTPHONE APPS Readly Logo
E-Mail Benachrichtigung
Benachrichtige mich zu:
0 Kommentare
Älteste
Neuste Beste Bewertung
Inline Feedbacks
Alle Kommentare anzeigen
Nach oben