Wie funktioniert Zabbix

Bestandteile und Funktionen von Zabbix

Die Funktionen von Zabbix teilen sich auf folgende wesentliche Bereiche auf:

  • Daten sammeln
  • Daten verarbeiten
  • reagieren und Aktionen auslösen
  • Konfiguration vornehmen
  • Daten anzeigen
Die Funktionen und Komponenten von Zabbix

Die Basisterminologie

Host und Item: Daten sammeln

Das Sammeln von Daten ist immer der erste Schritt beim Einrichten eines Monitorings.
In Zabbix wird das Sammeln der Daten durch die sogenannten Items gesteuert. Ein Item bezeichnet eine Messgröße (Was soll gemessen werden?). Der sogenannte Item-Value ist der Messwert.

Items können Informationen von beliebigen Formaten (Typen) enthalten, zum Beispiel den Festplattenverbrauch in Prozent, die Systemuhrzeit als Datum (Unix-Timestamp), einen Log-Eintrag als Text oder den CPU-Verbrauch als Fließkommazahl.

Alle Itemwerte werden als chronologische Liste mit Datum und Uhrzeit der Messung in der Zabbix-Datenbank gespeichert. Hierbei verwendet Zabbix keine eigene interne Datenbank, sondern eine externe SQL-Datenbank, wie zum Beispiel MySQL.

Aus verschiedenen Quellen sammelt der Zabbix-Server die Daten. Als Datenquellen stehen zur Verfügung:

  • Zabbix-Agent: Dieser ist auf dem zu überwachenden Host installiert und greift direkt auf die Kennwerte des Betriebssystems zu.
  • Simple Check: Tests, die der Zabbix-Server eigenständig durchführen kann, zum Beispiel Ping-Checks oder Portscans
  • SNMP: Der Zabbix-Server fungiert als lesender SNMP-Manager, der Daten von einem SNMP-Agenten auf dem überwachten Host oder Gerät abfragt.
  • Zabbix-Aggregate: Daten aus mehreren Quellen werden zusammengefügt, zum Beispiel addiert, und dann als neues Item gespeichert.
  • IPMI-Agent, der auf dem zu überwachenden Host oder Gerät installiert ist. Der IPMI-Daemon wird in der Regel vom Hardwarehersteller zusammen mit den Remote-Management-Konsolen bereitgestellt, zum Beispiel Dell iDRAC oder HP iLO.
  • Database Monitor: Der Zabbix-Server fragt Datenbanken ab und speichert die Resultate als Item-Values.
  • External Check: Skripte, die auf dem Zabbix-Server ausgeführt werden und deren Rückgabewerte als Item-Values gespeichert werden
  • Zabbix-Trapper: Daten, die per Zabbix-Sender vom Client an den Server geschickt werden
  • Zabbix-Internal: Auswertungen der internen Zabbix-Server-Daten
  • SSH oder Telnet: Kommandos werden über den integrierten SSH- oder Telnet-Client vom Zabbix-Server auf entfernten Hosts ausgeführt. Die Ausgaben der Kommandos werden als Item-Values gespeichert

Items sind immer an Hosts gebunden. Der Zabbix-Server bekommt immer den Auftrag, Wert X auf Host Y zu messen. Alles, was eine IP-Adresse oder einen DNS-Namen hat, kann in Zabbix ein Host sein. Hosts und Items bilden eine klassische Eins-zu-N-Beziehung. Ein Host kann beliebig viele Items haben. Ein Item kann aber nur einem Host zugeordnet werden.

Wenn Sie nach der Lektüre dieser Einführung sofort mit der Konfiguration des Monitorings beginnen wollen, merken Sie sich:

  • Schritt 1: Anlegen eines Hosts. Für wen oder was sollen Daten gesammelt werden?
  • Schritt 2: Anlegen der Items für die Hosts. Welche Daten werden gesammelt?
Tabellarische Darstellung der Messpunkte (Items) und der letzten Messwerte (Item-Values)

Trigger: Daten verarbeiten

Sobald der Zabbix-Server Daten gesammelt hat, stehen die Item-Values für die Auswertung zur Verfügung. Die Weiterverarbeitung der Daten erledigen sogenannte Trigger.

Die Werte der Items werden zum Beispiel mit einem Schwellenwert verglichen. Trigger sind eine der wichtigsten Kernfunktionen von Zabbix, denn nur sie können eine Aktion auslösen.

Zabbix bietet viele Funktionen zum Auswerten der Messergebnisse. Darunter das Anwenden von regulären Ausdrücken und mathematischen Funktionen. Mehrere Funktionen können mit den logischen Operatoren AND und OR verbunden werden.

Nachdem der Messwert eines Triggers ausgewertet wurde, nimmt der Trigger den Status wahr (TRUE) oder falsch (FALSE) an. Der Status TRUE bedeutet, dass ein Problem vorliegt. Der Status des Triggers wird in der Datenbank gespeichert und wartet dort auf eine weitere Verarbeitung. Die Zabbix-Trigger werden ähnlich wie Datenbank-Trigger in dem Moment ausgeführt, in dem ein Messwert neu im Zabbix-Server eintrifft.

Verwechseln Sie Trigger nicht mit Alarmierung. Der Trigger ist der Auslöser für zahlreiche nachfolgende Aktionen. Der Trigger bestimmt dabei nicht, welche Aktion ausgeführt wird. Die Aktionen haben eigene Bedingungen, die festlegen, ob diese ausgeführt werden oder nicht. Suchen Sie also in der Konfiguration der Trigger nicht nach Menüs oder Einstellmöglichkeiten, über die Sie auswählen, welcher Alarm ausgelöst werden soll. Wann welcher Alarm ausgelöst wird, stellt man in den Aktionen ein.

Graphen und Screens: Daten anzeigen

Eine große Stärke von Zabbix liegt in den vielfachen Möglichkeiten, Daten anzuzeigen. Das übersichtliche Anzeigen von Daten war von Anfang an ein wichtiges Ziel der Zabbix-Entwickler. Dementsprechend ist das Visualisieren von Daten direkt im Kern von Zabbix integriert. Sie brauchen keine zusätzlichen Tools oder Add-ons.

Über das Hauptmenü Monitoring|Latest Data erhalten Sie immer einen Überblick über alle Daten, die Zabbix sammelt. Host-Gruppen und Itemgruppen (Applikationen) erleichtern dabei das Auffinden von Hosts und Messpunkten. Über eine Freitextsuche können Sie sofort zu einzelnen Hosts springen.

Von jedem Messwert können Sie sich die Daten aus der Vergangenheit als Graph oder Tabelle anzeigen lassen. Neben diesen sogenannten "spontanen Graphen" können Sie verschiedene Graphen mit mehreren Werten auf einer gemeinsamen Zeitachse konfigurieren.

Und damit Sie bei den vielen und manchmal sehr großen Zahlen nicht den Überblick verlieren, rechnet Zabbix alle Zahlen mit Einheiten in verständliche Werte um. Sie sehen nicht, dass noch 5985456712 Bytes auf Ihrer Festplatte frei sind. Zabbix zeigt diesen Wert automatisch als 5,57 GB an.

Beispiel für einen "spontanen Graphen"

Medien und Aktionen

Auch wenn die meisten Benutzer Zabbix zum Alarmieren im Störfall einsetzen, findet man nirgendwo in den Menüs das Wort „Alarm“.

In Zabbix gibt es stattdessen Aktionen. Ein Alarm kann eine von vielen Aktionen sein. Streng genommen ist ein Alarm die Kombination aus einer Aktion (schicke eine Nachricht) und einem Medium (per E-Mail).

Aktionen werten den Zustand der Trigger aus. Nimmt der Trigger den Zustand TRUE an, das heißt, wenn ein Problem vorliegt, dann wird die Aktion ausgelöst. Es gibt zwei Aktionsformen:

  • Nachricht über eines der eingerichteten Medien schicken oder
  • Skript auf dem betroffenen Host oder dem Zabbix-Server ausführen. Zabbix versucht, das Problem zu lösen, ohne den Benutzer zu alarmieren.

Die Aktionen können selbstverständlich kombiniert und zu Aktionsketten zusammengefügt werden.

Wenn Sie also einen Alarm einrichten wollen, richten Sie zuerst ein Medium ein, zum Beispiel „E-Mail“. Solange keine Medien eingerichtet sind, können Sie keine Aktion vom Typ „Sende Nachricht“ anlegen.

Das Einrichten der Aktion ist also der letzte Schritt zur Alarmierung.

Die Arbeitsschritte für Eilige

Wenn Sie dieses Kapitel lesen, weil Sie zum ersten Mal ein Monitoring mit Zabbix einrichten wollen, dann merken Sie sich die folgende Reihenfolge der Arbeitsschritte:

  1. Sie legen über das Menü Configuration|Hosts die Geräte (Server, Switches, Drucker etc.) an.
  2. Sie legen über das Menü Configuration|Hosts|Items fest, welche Daten von den Hosts gemessen werden sollen (Ping, Festplatten- und CPU-Verbrauch, Portscans etc.).
  3. Sie legen über das Menü Configuration|Hosts|Triggers fest, welche Messwerte als Problem eingestuft werden.
    Die zuvor genannten drei Schritte führen Sie häufig durch. Beim Hinzufügen neuer Hosts zum Monitoring werden die Schritte zwei und drei in der Regel von Zabbix automatisch ausgeführt, weil Sie Templates verwenden.
  4. Sie richten über das Menü Administration|Mediatypes Medien ein. Zum Beispiel geben Sie einen Mailserver an, über den der Zabbix-Server Mails versenden kann.
  5. Sie richten über das Menü Administration|Action eine Aktion ein, die beim Auftauchen von Fehlern ausgeführt wird, zum Beispiel das Versenden einer Nachricht.
  6. Sie richten pro User über das Menü Administration|User ein, welche User wie und wann eine Nachricht erhalten soll.
    Die zuletzt genannten Arbeitsschritte führen Sie nur selten durch, weil es globale Einstellungen sind.