Zum Hauptinhalt springen
S-EDV news
← Alle Anleitungen
📘 Anleitung Monitoring 02.06.2026 · 10 min Lesezeit

Zabbix-Server aufsetzen und ersten Host überwachen

Diese Anleitung zeigt dir, wie du einen Zabbix-Server (Version 7.0 LTS) auf Debian 12 oder Ubuntu 24.04 aufsetzt, das Frontend einrichtest und deinen ersten Host mit dem Zabbix-Agent überwachst – inklusive Template, Trigger-Grundlagen und einer einfachen E-Mail-Benachrichtigung.

Lokale KI-Zentrale mit AnythingLLM und RAG-Workspaces im Docker-Betrieb

Mit dieser Anleitung lernst du, wie du einen Zabbix-Server aufsetzen und deinen ersten Host überwachen kannst – von der Paketinstallation bis zur ersten E-Mail-Warnung. Zabbix ist eine quelloffene, server-basierte Monitoring-Lösung für Netzwerke, Server und Dienste. Wir nutzen Zabbix 7.0 LTS mit MySQL/MariaDB als Datenbank, dem PHP-Frontend und dem modernen Agent2. Zielgruppe sind Admins im Mittelstand, die eine zentrale Überwachung mit Templates, Triggern und Benachrichtigungen aufbauen wollen. Alle Befehle sind copy-paste-fertig; wo das Web-Frontend zentral ist, beschreiben wir die Klickwege präzise.

Voraussetzungen

  • Zwei Linux-Server: einer für den Zabbix-Server (Debian 12 „Bookworm“ oder Ubuntu 24.04 LTS), einer als zu überwachender Zielhost. Für einen ersten Test reicht auch ein einzelner Server, der sich selbst überwacht.
  • Root- bzw. sudo-Rechte auf beiden Maschinen.
  • MySQL- oder MariaDB-Server auf dem Zabbix-Host (lokal). Wie du MariaDB installierst und absicherst, zeigt die verlinkte Anleitung am Ende.
  • PHP 8.0 oder neuer – wird über das Frontend-Paket automatisch mitgeliefert. Anforderungen: memory_limit mindestens 128M, post_max_size 16M, upload_max_filesize 2M, max_execution_time 300.
  • Offene Ports: Agent passiv 10050/TCP (Server fragt Agent ab), Server-Trapper 10051/TCP (Agent sendet aktiv an Server), Frontend 80 bzw. 443/TCP.

Welche Version? Nimm Zabbix 7.0 LTS (aktuell 7.0.26), das bis zum 30.06.2029 Support erhält. Finger weg von 7.2 – diese Zwischenversion ist Ende 2025 EOL. Verwende ausschließlich die offiziellen Pakete von repo.zabbix.com; die Pakete aus den Distributions-Repos sind veraltet.

Schritt 1: Repository einbinden und Pakete installieren

Zuerst bindest du das offizielle Zabbix-Repo ein und installierst Server, Frontend, SQL-Skripte und Agent2. Die Repo-Datei unterscheidet sich nur in der URL je nach Distribution.

Variante A: Debian 12

wget https://repo.zabbix.com/zabbix/7.0/debian/pool/main/z/zabbix-release/zabbix-release_latest_7.0+debian12_all.deb
sudo dpkg -i zabbix-release_latest_7.0+debian12_all.deb
sudo apt update
sudo apt -y install zabbix-server-mysql zabbix-frontend-php zabbix-apache-conf zabbix-sql-scripts zabbix-agent2

Variante B: Ubuntu 24.04 LTS

wget https://repo.zabbix.com/zabbix/7.0/release/ubuntu/pool/main/z/zabbix-release/zabbix-release_latest_7.0+ubuntu24.04_all.deb
sudo dpkg -i zabbix-release_latest_7.0+ubuntu24.04_all.deb
sudo apt update
sudo apt -y install zabbix-server-mysql zabbix-frontend-php zabbix-apache-conf zabbix-sql-scripts zabbix-agent2

Das Paket zabbix-apache-conf liefert die fertige Apache-Konfiguration für das Frontend. Wer lieber Nginx nutzt, installiert stattdessen zabbix-nginx-conf – die übrigen Schritte bleiben gleich.

Schritt 2: Datenbank anlegen

Zabbix braucht eine eigene Datenbank. Kritisch: Sie muss mit Zeichensatz utf8mb4 und Sortierung utf8mb4_bin angelegt werden – sonst schlagen Schema-Import oder spätere Trigger-Anlage fehl. Melde dich an der Datenbank an:

sudo mysql -uroot -p

Lege dann Datenbank und Benutzer an. Ersetze EinSicheresPasswort durch ein eigenes, starkes Passwort:

create database zabbix character set utf8mb4 collate utf8mb4_bin;
create user zabbix@localhost identified by 'EinSicheresPasswort';
grant all privileges on zabbix.* to zabbix@localhost;
set global log_bin_trust_function_creators = 1;
quit;

Das set global log_bin_trust_function_creators = 1 ist nötig, falls Binary Logging aktiv ist – ohne diese Einstellung bricht der Schema-Import mit einem Fehler ab. Wir setzen es nach dem Import wieder zurück.

Schritt 3: Schema importieren

Jetzt spielst du das initiale Datenbankschema ein. Es liegt komprimiert unter /usr/share/zabbix-sql-scripts/mysql/server.sql.gz. Der Import erfolgt als DB-Benutzer zabbix und kann je nach Hardware ein bis zwei Minuten dauern:

sudo zcat /usr/share/zabbix-sql-scripts/mysql/server.sql.gz | mysql --default-character-set=utf8mb4 -uzabbix -p zabbix

Nach erfolgreichem Import setzt du die zuvor gesetzte Option wieder auf den sicheren Standard zurück:

sudo mysql -uroot -p
set global log_bin_trust_function_creators = 0;
quit;

Schritt 4: DB-Zugang in der Server-Konfiguration setzen

Damit der Zabbix-Server seine Datenbank erreicht, trägst du die Zugangsdaten in /etc/zabbix/zabbix_server.conf ein. Setze dort (bzw. aktiviere die auskommentierten Zeilen) folgende Werte:

# /etc/zabbix/zabbix_server.conf
DBName=zabbix
DBUser=zabbix
DBPassword=EinSicheresPasswort

Das DBPassword muss exakt dem Passwort aus Schritt 2 entsprechen. Ein falsches Passwort ist eine der häufigsten Ursachen für die spätere Frontend-Meldung „Zabbix server is not running“.

Schritt 5: Dienste starten und aktivieren

Starte nun Zabbix-Server, den lokalen Agent2 und den Webserver und sorge dafür, dass sie beim Booten automatisch starten:

sudo systemctl restart zabbix-server zabbix-agent2 apache2
sudo systemctl enable zabbix-server zabbix-agent2 apache2

Prüfe kurz, ob der Server sauber hochkommt. Bei Problemen liefert das Journal die entscheidenden Hinweise (oft DB-Zugang oder Zeichensatz):

sudo systemctl status zabbix-server
sudo journalctl -u zabbix-server -n 50 --no-pager

Schritt 6: Frontend-Setup-Wizard durchlaufen

Öffne im Browser http://SERVER-IP/zabbix (z. B. http://192.168.1.10/zabbix). Der Setup-Wizard führt dich durch wenige Schritte:

  • Welcome: Sprache wählen, weiter.
  • Check of pre-requisites: Hier prüft Zabbix die PHP-Werte (memory_limit, post_max_size, max_execution_time, Zeitzone usw.). Alles muss auf OK stehen. Rote Einträge zuerst beheben.
  • Configure DB connection: Database type MySQL, Database host localhost, Port 0 (Standard) oder 3306, Database name zabbix, User zabbix, Password wie in Schritt 2.
  • Settings: Zabbix server name (frei wählbarer Anzeigename) und Default time zone einstellen – seit Version 5.2 lässt sich die Zeitzone bequem hier in der GUI setzen.
  • Pre-installation summary: Werte kontrollieren.
  • Install: Abschließen.

Anschließend kommst du zum Login. Erst-Login: Benutzer Admin (großes A), Passwort zabbix. Ändere dieses Standardpasswort sofort unter Users > Users > Admin > Change password – das Default-Login ist ein bekanntes Sicherheitsrisiko.

Falls der Pre-requisites-Schritt eine Zeitzonen-Warnung zeigt, kannst du sie alternativ direkt in der Apache-Konfiguration setzen:

# /etc/zabbix/apache.conf
php_value date.timezone Europe/Berlin
sudo systemctl reload apache2

Schritt 7: Zabbix-Agent auf dem Zielhost installieren

Jetzt rüstest du den zu überwachenden Server mit dem Agent2 aus. Das Repo wird wie auf dem Server eingebunden, danach reicht das Agent-Paket. Beispiel für Debian 12 (Ubuntu analog mit der Ubuntu-Repo-URL aus Schritt 1):

wget https://repo.zabbix.com/zabbix/7.0/debian/pool/main/z/zabbix-release/zabbix-release_latest_7.0+debian12_all.deb
sudo dpkg -i zabbix-release_latest_7.0+debian12_all.deb
sudo apt update
sudo apt -y install zabbix-agent2

Bearbeite anschließend /etc/zabbix/zabbix_agent2.conf. Trage die IP deines Zabbix-Servers ein und setze den Hostname exakt so, wie der Host später in der GUI heißen soll:

# /etc/zabbix/zabbix_agent2.conf
Server=192.168.1.10
ServerActive=192.168.1.10
Hostname=web-01

Server erlaubt passive Abfragen (Server fragt Agent über Port 10050 ab), ServerActive aktiviert aktive Checks (Agent sendet an Port 10051). Für den Einstieg reicht der passive Modus, beide Zeilen schaden aber nicht. Starte und aktiviere den Agent:

sudo systemctl restart zabbix-agent2
sudo systemctl enable zabbix-agent2

Schritt 8: Verbindung optional per PSK verschlüsseln

Standardmäßig ist die Agent-Verbindung unverschlüsselt. Für eine einfache, robuste Verschlüsselung nutzt du einen Pre-Shared Key (PSK). Erzeuge den Schlüssel auf dem Agent-Host:

sudo sh -c 'openssl rand -hex 32 > /etc/zabbix/zabbix_agent2.psk'
sudo chown zabbix:zabbix /etc/zabbix/zabbix_agent2.psk
sudo chmod 640 /etc/zabbix/zabbix_agent2.psk

Ergänze in /etc/zabbix/zabbix_agent2.conf die PSK-Parameter und starte den Agent neu:

# /etc/zabbix/zabbix_agent2.conf (PSK-Teil)
TLSConnect=psk
TLSAccept=psk
TLSPSKIdentity=PSK001
TLSPSKFile=/etc/zabbix/zabbix_agent2.psk

In der GUI hinterlegst du am Host im Reiter Encryption dieselbe PSK identity (hier PSK001) und denselben PSK (Inhalt der Datei). Beachte: Die TLSPSKIdentity wird unverschlüsselt übertragen – wähle dort nichts Sensibles und schütze die Schlüsseldatei mit chmod 640.

Schritt 9: Host in der GUI anlegen

Wechsle in der GUI zu Data collection > Hosts und klicke oben rechts auf Create host:

  • Host name: exakt gleich dem Hostname aus der Agent-Konfiguration (hier web-01) – case-sensitive.
  • Host groups: z. B. Linux servers wählen oder neu anlegen.
  • Interfaces: auf Add > Agent klicken, die IP-Adresse des Zielhosts eintragen, Port 10050 (Standard für passiv).

Speichere mit Add. Der Host taucht nun in der Liste auf, die Verfügbarkeitsanzeige (ZBX) wird nach kurzer Zeit grün, sobald die erste Abfrage erfolgreich war.

Schritt 10: Template verknüpfen und Items/Trigger verstehen

Items und Trigger musst du nicht von Hand bauen – ein Template liefert sie fertig. Öffne den Host erneut und wechsle in den Reiter Templates. Verknüpfe das passende Template:

  • Linux by Zabbix agent für den passiven Modus.
  • Linux by Zabbix agent active für den aktiven Modus.

Trage den Template-Namen ein, klicke auf Add und speichere mit Update. Damit erbt der Host automatisch dutzende Items und Trigger.

Die beiden zentralen Begriffe kurz erklärt:

BegriffBedeutungBeispiel
ItemEine einzelne Messgröße, die Zabbix sammeltCPU-Last, freier Arbeitsspeicher, Filesystem-Auslastung
TriggerEine Bedingung auf einem oder mehreren Items, die einen Problemzustand definiertFilesystem zu mehr als 90 % voll, Dienst nicht erreichbar

Unter Monitoring > Latest data siehst du die eingehenden Messwerte, unter Monitoring > Problems die aktuell ausgelösten Trigger. Spätestens jetzt überwachst du deinen ersten Host live.

Schritt 11: Einfache E-Mail-Benachrichtigung einrichten

Eine Benachrichtigung in Zabbix besteht immer aus drei Teilen. Fehlt einer, passiert nichts.

  1. Media type (E-Mail-Versand konfigurieren): Unter Alerts > Media types > Email trägst du SMTP server, SMTP server port, SMTP helo und SMTP email (Absenderadresse) ein. Bei Bedarf Connection security und Authentication aktivieren. Den Media type per Enabled einschalten.
  2. User media (Empfänger festlegen): Unter Users > Users den gewünschten Benutzer öffnen, Reiter Media > Add, Type Email, Send to mit der Zieladresse füllen.
  3. Trigger action (auslösen): Unter Alerts > Actions > Trigger actions > Create action eine Aktion anlegen. Im Reiter Operations eine Operation Send to users hinzufügen und unter Send to media type das Medium Email aktivieren.

Ab jetzt löst ein Trigger – etwa „Filesystem zu voll“ – automatisch eine E-Mail an den hinterlegten Benutzer aus.

Troubleshooting

  • Frontend meldet „Zabbix server is not running“: Meist falsches DBPassword in zabbix_server.conf oder der Dienst läuft nicht. Prüfe mit sudo journalctl -u zabbix-server -n 50 und starte den Dienst neu.
  • „no active checks on server“ im Agent-Log: Der Hostname in zabbix_agent2.conf stimmt nicht exakt (case-sensitive!) mit dem GUI-Host-Namen überein.
  • Schema-Import oder Trigger-Anlage schlägt fehl: Falscher DB-Zeichensatz. Die Datenbank muss utf8mb4 und utf8mb4_bin verwenden.
  • Import-Fehler bei Binary Logging: Vergessenes set global log_bin_trust_function_creators = 1 vor dem Import. Danach wieder auf 0 setzen.
  • ZBX-Anzeige bleibt rot: Firewall blockiert. Port 10050 muss vom Server zum Agent (passiv) bzw. 10051 vom Agent zum Server (aktiv) offen sein.
  • Zeitzonen-Warnung im Frontend: date.timezone nicht gesetzt. Seit 5.2 am besten über den Wizard, alternativ in /etc/zabbix/apache.conf.
  • Falsche Version installiert: 7.2 ist EOL. Stelle sicher, dass das 7.0-Repo und die zur Distribution passende Repo-Datei verwendet werden.
  • E-Mail kommt nicht an: Alle drei Teile prüfen – Media type aktiv, User media gesetzt, Trigger action aktiv.

Häufige Fragen

Welche Zabbix-Version soll ich nehmen?

Nimm Zabbix 7.0 LTS (aktuell 7.0.26) mit Support bis 30.06.2029. Die Zwischenversion 7.2 ist Ende 2025 EOL und für produktive Umgebungen ungeeignet. LTS-Versionen erhalten am längsten Sicherheits- und Bugfix-Updates.

Was ist der Unterschied zwischen passivem und aktivem Agent?

Beim passiven Agent fragt der Server die Werte aktiv über Port 10050 ab. Beim aktiven Agent holt sich der Agent seine Aufgabenliste vom Server und sendet die Daten von sich aus an Port 10051. Aktiv entlastet den Server und funktioniert auch durch NAT besser, erfordert aber den exakt passenden Hostname und das passende Template (… agent active).

Brauche ich zwingend MySQL oder geht auch MariaDB?

MariaDB funktioniert genauso. Wichtig ist nur, dass die Datenbank mit utf8mb4 und utf8mb4_bin angelegt wird und der DB-Server lokal erreichbar ist. Alternativ unterstützt Zabbix auch PostgreSQL – dann nutzt du das entsprechende Server-Paket und SQL-Skript.

Muss ich Items und Trigger manuell anlegen?

Nein. Über das Template Linux by Zabbix agent (bzw. die aktive Variante) erbt der Host automatisch alle relevanten Items und Trigger. Eigene Items/Trigger ergänzt du nur bei speziellen Anforderungen.

Warum bekomme ich trotz Problem keine E-Mail?

Weil eine Benachrichtigung drei Teile braucht: einen aktiven Media type, ein User media beim Empfänger und eine aktive Trigger action mit einer Send to users-Operation. Fehlt einer dieser Teile, wird nichts versendet.

Ist die Agent-Verbindung standardmäßig verschlüsselt?

Nein, im Auslieferungszustand ist sie unverschlüsselt. Für eine einfache Verschlüsselung richtest du einen Pre-Shared Key (PSK) ein. Bedenke, dass die TLSPSKIdentity im Klartext übertragen wird – wähle dort keinen sensiblen Wert und schütze die PSK-Datei mit restriktiven Rechten.

Fazit

Du hast jetzt einen vollständigen Zabbix-Server mit MySQL-Datenbank, PHP-Frontend und Agent2 aufgesetzt und deinen ersten Host überwacht. Die wichtigsten Stolpersteine kennst du: der korrekte DB-Zeichensatz utf8mb4_bin, der exakt übereinstimmende Hostname, offene Ports und die drei Teile einer Benachrichtigung. Mit dem Template Linux by Zabbix agent erbt jeder neue Host sofort sinnvolle Items und Trigger – so skalierst du das Monitoring schnell auf weitere Server. Als nächste Schritte bieten sich Dashboards, weitere Templates (z. B. für Webserver oder Datenbanken) und eskalierende Benachrichtigungen an. Denk daran, das Standardpasswort von Admin sofort zu ändern.

Weiterführende Anleitungen und Quellen

Quellen: Offizielle Zabbix-Dokumentation zur Installation aus Paketen, zum Monitoring von Linux mit dem Zabbix-Agent und zur Verschlüsselung mit Pre-Shared Keys sowie die Zabbix Life Cycle and Release Policy.