Durch die rasante Zunahme an unternehmenskritischen Servern und Applikationen müssen die Strukturen in Rechenzentren permanent angepasst werden. Dabei bleibt das Monitoring gerne auf der Strecke. Hier setzt Zabbix an: Die Open-Source-Umgebung leistet bei der Überwachung von IT-Infrastrukturen seit mehr als 20 Jahren gute Dienste. Zabbix 6.4 kombiniert Server-, Netzwerk-, Cloud-, Anwendungs- sowie Servicemonitoring und ist besonders skalierbar.
Rechenzentren bilden das Herzstück von IT-Infrastrukturen – hier laufen im wahrsten Sinne des Wortes die Drähte zusammen, die für reibungslose Kommunikations- und Kooperationsprozesse in Unternehmen sorgen. Die Anforderungen an ein vollumfängliches Monitoring sind indes hoch. Entsprechende Systeme müssen eine Vielzahl von Parametern eines Netzwerks sowie den Zustand und die Integrität von Servern, virtuellen Maschinen, Anwendungen, Diensten, Datenbanken, Websites, der Cloud und mehr erfassen. Die zugehörigen Informationen sind nicht nur für das Monitoring notwendig, sondern liefern auch Hinweise zur Optimierung von Rechenzentren – etwa in Sachen Energieeffizienz.
Hochintegrierte Netzwerküberwachung
Die Zabbix-Entwickler beschreiben ihre Umgebung als hochintegrierte Netzwerküberwachungsumgebung und übertreiben damit nicht. Alexei Vladishev, das Zabbix-Mastermind, veröffentlichte 2001 die erste Betaversion 0.1, gründete 2005 Zabbix LLC und hat das System bis heute zu einem der bedeutendsten Open-Source-Monitoringsysteme weiterentwickelt. Zur Datenerfassung nutzt Zabbix Verfügbarkeits- und Leistungsprüfungen, erlaubt dank der SNMP-Unterstützung sowohl Trapping als auch Polling, beherrscht IPMI, JMX und bietet VMware-Überwachung. Unterschiedlichen Monitoringanforderungen wird Zabbix durch die Möglichkeit benutzerdefinierter Prüfungen und der Datenerfassung in Intervallen gerecht. Dabei haben Sie die Wahl, ob Sie mit Unterstützung von Agenten oder agentenlos Daten sammeln möchten.
Der Zabbix-Server, das Herzstück der Umgebung, stellt über sein webbasiertes Frontend alle Berichte, Statistiken sowie die Konfigurationsparameter bereit. Dank des webbasierten Zugangs ist ein ortsunabhängiger Zugriff auf die Status- und Netzwerkinformationen möglich. In Sachen Lizenz unterliegt Zabbix der GPLv2. Die Entwickler weisen explizit darauf hin, dass die Sinnhaftigkeit von Monitoring nicht zwingend an die Größe des Rechenzentrums geknüpft ist, sondern dass auch kleine Unternehmen mit wenigen Servern davon profitieren.
Rechenzentren bilden das Herzstück von IT-Infrastrukturen – hier laufen im wahrsten Sinne des Wortes die Drähte zusammen, die für reibungslose Kommunikations- und Kooperationsprozesse in Unternehmen sorgen. Die Anforderungen an ein vollumfängliches Monitoring sind indes hoch. Entsprechende Systeme müssen eine Vielzahl von Parametern eines Netzwerks sowie den Zustand und die Integrität von Servern, virtuellen Maschinen, Anwendungen, Diensten, Datenbanken, Websites, der Cloud und mehr erfassen. Die zugehörigen Informationen sind nicht nur für das Monitoring notwendig, sondern liefern auch Hinweise zur Optimierung von Rechenzentren – etwa in Sachen Energieeffizienz.
Hochintegrierte Netzwerküberwachung
Die Zabbix-Entwickler beschreiben ihre Umgebung als hochintegrierte Netzwerküberwachungsumgebung und übertreiben damit nicht. Alexei Vladishev, das Zabbix-Mastermind, veröffentlichte 2001 die erste Betaversion 0.1, gründete 2005 Zabbix LLC und hat das System bis heute zu einem der bedeutendsten Open-Source-Monitoringsysteme weiterentwickelt. Zur Datenerfassung nutzt Zabbix Verfügbarkeits- und Leistungsprüfungen, erlaubt dank der SNMP-Unterstützung sowohl Trapping als auch Polling, beherrscht IPMI, JMX und bietet VMware-Überwachung. Unterschiedlichen Monitoringanforderungen wird Zabbix durch die Möglichkeit benutzerdefinierter Prüfungen und der Datenerfassung in Intervallen gerecht. Dabei haben Sie die Wahl, ob Sie mit Unterstützung von Agenten oder agentenlos Daten sammeln möchten.
Der Zabbix-Server, das Herzstück der Umgebung, stellt über sein webbasiertes Frontend alle Berichte, Statistiken sowie die Konfigurationsparameter bereit. Dank des webbasierten Zugangs ist ein ortsunabhängiger Zugriff auf die Status- und Netzwerkinformationen möglich. In Sachen Lizenz unterliegt Zabbix der GPLv2. Die Entwickler weisen explizit darauf hin, dass die Sinnhaftigkeit von Monitoring nicht zwingend an die Größe des Rechenzentrums geknüpft ist, sondern dass auch kleine Unternehmen mit wenigen Servern davon profitieren.
Zabbix gilt als einfach zu konfigurieren und vereinfacht das Monitoring dank seiner Template-Funktion. Das Erkennen neuer Netzwerkgeräte vereinfacht sich dank Auto Discovery. Über die Zabbix-API integrieren Sie Drittanwendungen. Möchten Sie ein tiefgehendes Informationsbedürfnis adressieren, greifen Sie zu den Linux- und Windows-Agenten. Mithilfe des Berechtigungssystems steuern Sie die Monitoringaufgaben gezielt, gerade auch in verteilten Infrastrukturen. Um Remote-Systeme in das Monitoring einzubinden, greifen Sie zum Zabbix-Proxy-Server.
Liegt der Fokus auf der Optimierung des Rechenzentrums, verspricht Zabbix ebenfalls wertvolle Erkenntnisse. Sie können quasi jeden kritischen Prozess überwachen und dank professioneller Visualisierungs- und Benachrichtigungsfunktionen schnell auf Probleme reagieren. Dabei profitiert die Rechenzentrumsoptimierung von den Reporting- und Datenvisualisierungsfunktionen der gespeicherten Daten; diese liefern wichtige Hinweise für die Kapazitätsplanung.
Verschiedene Wege zur Installation
Soweit es die Inbetriebnahme von Zabbix betrifft, geben sich die Entwickler sehr viel Mühe, die Installationshürden so niedrig wie möglich zu halten. Die Linux-basierte Umgebung kann auf gängigen Linux-Betriebssystemen, als Cloudimage, Container, Appliance sowie quellcodebasiert installiert werden. Über die Downloadseite [1] wählen Sie die präferierte Installationsvariante sowie Zabbix-Version aus. Beim paketbasierten Setup haben Sie zudem die Wahl, welche Zabbix-Komponenten (Server, Frontend und Agent), welche Datenbank und welchen Webserver Sie verwenden möchten. In Frage kommen die MySQL- und die PostgreSQL-Datenbank sowie der Apache- oder Nginx-Webserver.
Abhängig vom zugrundeliegenden Linux-Serversystem zeigen sich bei der Inbetriebnahme systemspezifische Unterschiede. Die nachfolgende Wegbeschreibung basiert auf der Installation der Debian-11-Pakete. Im ersten Schritt konfigurieren Sie das Zabbix-Repository:
Zur Installation des Zabbix-Servers, des -Frontends und des Agenten führen Sie folgenden Befehl aus:
apt install
zabbix-ser ver-mysql
zabbix-frontend-php
zabbix-apache-conf
zabbix-sql-scripts zabbix-agent
Um eine initiale Datenbank einzurichten, stellen Sie zunächst sicher, dass MySQL ausgeführt wird. Dann verwenden Sie folgende Kommandos:
# mysql -uroot -p <password>
mysql> create database zabbix character set utf8mb4 collate utf8mb4_bin;
mysql> create user zabbix@localhost identified by 'passwort';
mysql> grant all privileges on zabbix.* to zabbix@localhost;
mysql> set global log_bin_trust_function_creators = 1;
mysql> quit;
Auf dem Zabbix-Server-Host importieren Sie nun das ursprüngliche Schema und die Daten:
# zcat /usr/share/zabbix-sql-scripts/mysql/server.sql.gz | mysql --default-character-set=utf8mb4 -uzabbix -p zabbix
Dabei werden Sie aufgefordert, Ihr neu generiertes Passwort einzugeben. Deaktivieren Sie nach dem Importieren des Datenbankschemas die Option "log_ bin_trust_function_creators":
# mysql -uroot -p <password>
mysql> set global log_bin_trust_function_creators = 0;
mysql> quit;
Als Nächstes konfigurieren Sie das Zusammenspiel des Zabbix-Servers mit der Datenbank: Dazu editieren Sie die Konfigurationsdatei "/etc/zabbix/zabbix_server.conf". Hinterlegen Sie dabei das Datenbankpasswort mit der Option "DBPassword=".
Damit ist die Zabbix-Umgebung grundsätzlich einsatzbereit und Sie können die Zabbix-Server- und Agenten-Prozesse starten. Damit beide auf Seiten des Serversystems beim Bootvorgang mitstarten, führen Sie nachfolgenden Kommandos aus:
Anschließend greifen Sie auf die Zabbix-GUI zu. Wenn Sie sich für den Apache-Webserver entschieden haben, ist Zabbix standardmäßig über folgende URL verfügbar: "http://servername/zabbix/". Verwenden Sie die Credentials "Admin" und "zabbix" für das erste Login. Falls Sie es mit der Evaluierung eilig haben, gestalten sich erste Gehversuche mit einer virtuellen Appliance besonders einfach. Diese steht für gängige Virtualisierungsumgebungen zur Verfügung.
Schnellstart für das Monitoring
Das Monitoring mit Zabbix folgt einem wiederkehrenden Schema – ein Aspekt, der die Implementierung von Monitoringkonfigurationen wesentlich vereinfacht. Zunächst sollten Sie in der Zabbix-Benutzerverwaltung geeignete Gruppen und User für die verschiedenen Monitoringaufgaben anlegen. Der erste Schritt beim Monitoring dient der Host-Konfiguration. Dazu legen Sie im Menü "Monitoring / Hosts" ein zu überwachendes System an. Der neuen Konfiguration müssen Sie zumindest eine Bezeichnung, eine IP-Adresse und eine Host-Gruppe zuweisen.
Im zweiten Schritt definieren Sie die zu überwachenden Elemente. In der Zabbix-Terminologie heißen diese "Items". Sie bilden die Grundlage für das Sammeln von Daten in Zabbix. Ohne Items gibt es keine Daten – nur ein Item definiert eine einzelne Metrik oder die Art der Daten, die von einem Host gesammelt werden sollen. Items legen Sie im Menü "Data Collections" an. Öffnen Sie das "Hosts"-Menü und suchen Sie die Host-Konfiguration, für die Sie ein Item generieren möchten. Hier könnten Sie beispielsweise das Item "Server-Last" anlegen. In diesem Schritt ist auch die Integration eines Zabbix-Agenten möglich, sofern ein solcher auf dem Zielsystem installiert ist.
Der dritte zentrale Schritt dient der Trigger-Konfiguration. Während die Items lediglich für das Sammeln von Daten stehen, wertet Zabbix erst dann automatisch eingehende Informationen aus, wenn Sie zumindest einen Trigger definieren. Dabei handelt es sich um einen logischen Ausdruck, mit dem Sie den Schwellenwert bestimmen, ab dessen Über- beziehungsweise Unterschreiten Informationen für das Zabbix-System relevant sind. Wird ein solcher Trigger ausgelöst oder eine bestimmte Item-Information als problematisch identifiziert, werden Sie über das Interface oder einen Hinweismechanismus über den kritischen Zustand informiert.
Die Trigger-Definition erfolgt ebenfalls im Menü "Data Collection / Hosts". Hier wählen Sie das System aus, dem Sie einen Trigger zuweisen wollen, und klicken in der Host-Tabelle auf "Triggers". Bei der Trigger-Konfiguration bedienen Sie sich meist regulärer Ausdrücke, um den zulässigen vom unerwünschten Wertebereich abzugrenzen. Die Trigger-Definition ist zweifelsohne die anspruchsvollste Aufgabe beim Umgang mit Zabbix: Nur wenn die Auslöser sinnvoll konfiguriert sind, können diese entsprechende Hinweise liefern, denen Sie nachgehen können.
Im Kern dienen Monitoringsysteme der Überwachung und der Ausgabe von Warnmeldungen. Diese müssen den Administrator zielgenau und zeitnah über kritische Ereignisse informieren. Um es mit den Worten des Zabbix-Teams zu formulieren: Das Sammeln von Daten und die Trigger-Konfiguration dienen dazu, in Problemsituationen eine Warnung "abzufeuern". Dabei setzt Zabbix primär auf das Medium E-Mail. Grundsätzlich können Sie aber auch andere Medien und Messenger verwenden, beispielsweise die gute, alte SMS oder eine Telegram-Nachricht. Über spezielle APIs, oft kommerziell angeboten, ist auch die Benachrichtigung per WhatsApp möglich – so zum Beispiel mit Neting [2].
Benachrichtigung an Signal-Messenger
Unter sicherheitsbewussten IT-Fachleuten ist WhatsApp verpönt. Gerade im beruflichen Umfeld setzen viele auf Signal [3], und lösen sich somit von den Meta-Fesseln. Schon wegen der Open-Source-Affinität von Administratoren dürfte der Anteil der Signal-User in dieser Gruppe besonders hoch sein.
Von Haus aus bringt Zabbix keine Signal-Unterstützung mit, doch das lässt sich mit einigen Handgriffen ändern. Einziger Haken: Sie benötigen eine eigene Telefonnummer, um sich bei Signal zu registrieren. Hierfür bieten sich verschiedene Lösungen an: Sie können beispielsweise die Rufnummer Ihres derzeitigen SMS-Gateways oder die Rufnummer des Unternehmens verwenden. Sie müssen nur eine Textnachricht empfangen – der Rest der Kommunikation erfolgt über das Internet.
Die Signal-Anbindung stellen Sie mithilfe von signal-cli [4] her. Einzige Voraussetzung: Auf dem Zabbix-Serversystem muss die Java Runtime Environment 17 oder höher installiert sein. Anschließend installieren Sie signal-cli:
Wichtig ist dabei, dass Sie die Rufnummer einschließlich internationaler Ländervorwahl eintragen, also beispielsweise "+491710123456". Sie sollten innerhalb kürzester Zeit eine SMS mit einem sechsstelligen Code in der Art "123-456" erhalten. Diesen benötigen Sie, um die Registrierung abzuschließen:
Nach der Befehlsausführung wird eine Nachrichten-ID ausgegeben, die Sie ignorieren können. Jetzt müssen Sie nur noch für das Zusammenspiel von Zabbix und signal-cli sorgen. Dazu ist die Anpassung von "AlertScript" notwendig. Editieren Sie die Datei "/usr/lib/zabbix/alertscripts/ signal.sh" und fügen Sie die folgenden Zeilen hinzu:
#!/bin/bash
signal-cli -u '<Rufnummer>' send -m "$1" $2
Speichern Sie die Anpassungen, ändern Sie den Besitzer der Datei und passen Sie die Berechtigungen an:
Im Zabbix-Frontend konfigurieren Sie als Nächstes den Zabbix-Medientyp. In der Zabbix-Administration legen Sie im Menü "Alerts" unter "Media types" einen neuen Medientyp an. Diesem weisen Sie die Bezeichnung "Signal" und den Typ "Skript" zu. Im Feld "Script name" geben Sie "signal.sh" ein. Außerdem legen Sie zwei Skriptparameter an:
{ALERT.MESSAGE}
{ALERT.SENDTO}
Auf dem Register "Message Templates" der Medienkonfiguration richten Sie die Templates ein, die die Signal-Benachrichtigung verwenden.
Im Anschluss ist ein weiterer Schritt notwendig: In der Benutzerverwaltung öffnen Sie den Benutzer, der per Signal über Warnungen informiert werden soll, und legen ein neues Medium an. Diesem weisen Sie den Typ "Signal", unter "Send to" die Rufnummer und den Schweregrad einer Warnung zu, ab dem der Hinweis rausgehen soll. Auch hier ist wieder wichtig, dass Sie die Länderkennung einschließlich Pluszeichen angeben. Nun sollten Sie ein kritisches Problem provozieren, um die Funktionstüchtigkeit der Signal-Warnung zu prüfen.
In die dritte Dimension
Zabbix ist für routinierte Administratoren ein nützliches Werkzeug, weil es auf flexible und zuverlässige Art alle kritischen Überwachungsaufgaben bewältigt. Gerade in größeren IT-Infrastrukturen bietet sich die Nutzung von Plänen an, um Warnungen mit der physischen Standortvisualisierung abzugleichen. Somit lassen sich defekte oder fehlerhafte Racks schnell lokalisieren.
Die Verwendung von Karten ist ein beliebtes Konzept, um das Monitoring noch effizienter zu gestalten. Dabei profitieren Sie davon, dass Zabbix in Ihren Plänen den Schweregrad einer Meldung visuell hervorhebt. Kritische Zustände an Systemen werden durch einen orangen beziehungsweise roten Kreis gekennzeichnet. Mit einem Klick auf einen Hinweis gelangen Sie zu den Detailinformationen. All diese Funktionen können Sie auch in übersichtlichen zwei- oder gar dreidimensionalen Darstellungen Ihres Rechenzentrums nutzen.
Für das Erstellen von Karten stehen Ihnen die Funktionen des Menüs "Monitoring / Maps" zur Verfügung. Doch dabei handelt es sich nicht um eine Kartenansicht, die die tatsächlichen Gegebenheiten widerspiegelt, sondern vielmehr um eine schematische Darstellung Ihrer Infrastruktur. Das können Sie ändern, indem Sie beispielsweise einen bestehenden PDF-Gebäudeplan des Architekten in eine Grafikdatei konvertieren oder mit einem Spezialisten wie Sweet Home 3D [5] einen Gebäudeplan selbst anfertigen.
In Zabbix generieren Sie dann mit "Cre-ate Map" eine neue Karte und verwenden die zuvor erstellte Abbildung als Hintergrundgrafik. Anschließend weisen Sie beispielsweise den vorbereiteten Racksystemen die gewünschten Server zu. Noch komfortabler gestaltet sich das Monitoring, wenn Sie keine zwei-, sondern dreidimensionale Darstellungen verwenden. Grundsätzlich sind auch Virtual-Reality-Ansichten möglich, allerdings verlangt der virtuelle Rechenzentrumsbesuch dann auch eine entsprechende VR-Brille.
Für die Implementierung eines 3D-Monitorings benötigen Sie neben Zabbix und Sweet Home 3D eine Blender-Installation [6]. Die Vorgehensweise gestaltet sich denkbar einfach. Nachdem Sie bereits mit Sweet Home 3D die gewünschten Räumlichkeiten abgebildet haben, importieren Sie im nächsten Schritt die Daten in Blender. Wichtig dabei ist, dass die Exporte identische Bezeichnungen wie die Zabbix-Items besitzen.
Mittels Python und der Blender-Python-API stellen Sie nun die Verbindung zwischen der Monitoringumgebung und der 3D-Grafiksuite her. Der Clou dabei: Sie können die Objekteigenschaften mit der Alarmausgabe modifizieren. Kritische Objekte lassen sich beispielsweise rot einfärben. Sie können auch mit Rauch- und Feuereffekten arbeiten.
Die Blender-Python-API exportiert die gerenderten Ergebnisse als PNG-Abbildung oder als X3D-Datei. Um diese Abbildungen in Zabbix zu nutzen, legen Sie im Dashboard ein "URL Widget" an und weisen diesem beispielsweise das Verzeichnis "/assets/3d/" zu. Nach einem Refresh der Darstellung finden Sie dort die dreidimensionale Darstellung Ihres Rechenzentrums.
Praktische Automatisierung
Angesichts hoher Dynamiken in Rechenzentren ist die Automatisierung des Monitorings eine der zentralen Stellschrauben zur Optimierung der Überwachungsprozesse. Dabei leisten die Agenten wertvolle Hilfe. Allerdings ist deren Einsatz auf Linux- und Windows-Systeme beschränkt. Um neue oder veränderte Devices oder Services zu identifizieren, stellt Zabbix flexible automatische Netzwerkerkennungsfunktionen bereit.
Diese beschleunigen das Zabbix-Deployment, vereinfachen die Administration und reduzieren den Verwaltungsaufwand in sich schnell verändernden Umgebungen. Die Netzwerkerkennung basiert insbesondere auf IP-Bereichen, der Verfügbarkeit von externen Diensten sowie Informationen, die von SNMP- oder Zabbix-Agents stammen. Wichtig zu wissen: Zabbix bietet keine Erkennung der Netzwerktopologie. Hierfür greifen Sie zu Werkzeugen wie Nmap [7].
Die Netzwerkerkennung ist im Wesentlichen durch zwei Phasen gekennzeichnet: Phase 1 dient der Erkennung von relevanten Diensten und Geräten, in Phase 2 können verschiedene Aktionen wie das Senden von Hinweisen, das Hinzufügen von Hosts beziehungsweise Services oder Skripten ausgeführt werden. Das Herzstück der Discovery-Funktion ist die Discovery-Regel, die Sie im Menü "Data collection / Discovery" anlegen. Hier bestimmen Sie insbesondere den IP-Adressenbereich, das zeitliche Intervall für die automatische Erkennung und die verwendeten Prüfungen.
In der Praxis können Sie beispielsweise einen Check anlegen, der jede Viertelstunde die Hosts abfragt, auf denen ein Zabbix-Agent ausgeführt wird. Im Fall identifizierter Linux-Hosts können diese zur Gruppe der Linux-Server hinzugefügt werden – aber nur dann, wenn nicht bereits ein entsprechender Eintrag existiert. Mit einer weiteren Regel können Sie außerdem dafür sorgen, dass Servereinträge aus dem Verzeichnis entfernt werden, sollten diese mehr als 24 Stunden nicht erreichbar sein. Die entsprechende Aktion lässt sich dann bei Bedarf noch mit der Ausgabe einer Warnmeldung verknüpfen.
Fazit
Immer mehr Serverdienste und Anwendungen sind für Unternehmen kritisch und dürfen nicht ausfallen. Mit Zabbix steht Administratoren eine hervorragende Monitoringumgebung zur Verfügung, die bei allen Aufgaben eine gute Figur macht. Insbesondere bei der Optimierung von Rechenzentren leistet Zabbix gute Dienste. Durch die Integration von Signal und der dreidimensionalen Visualisierung der Räumlichkeiten gestaltet sich das Monitoring noch komfortabler.