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.

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_limitmindestens 128M,post_max_size16M,upload_max_filesize2M,max_execution_time300. - Offene Ports: Agent passiv
10050/TCP(Server fragt Agent ab), Server-Trapper10051/TCP(Agent sendet aktiv an Server), Frontend80bzw.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
OKstehen. Rote Einträge zuerst beheben. - Configure DB connection: Database type
MySQL, Database hostlocalhost, Port0(Standard) oder3306, Database namezabbix, Userzabbix, 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
Hostnameaus der Agent-Konfiguration (hierweb-01) – case-sensitive. - Host groups: z. B.
Linux serverswä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:
| Begriff | Bedeutung | Beispiel |
|---|---|---|
| Item | Eine einzelne Messgröße, die Zabbix sammelt | CPU-Last, freier Arbeitsspeicher, Filesystem-Auslastung |
| Trigger | Eine Bedingung auf einem oder mehreren Items, die einen Problemzustand definiert | Filesystem 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.
- Media type (E-Mail-Versand konfigurieren): Unter Alerts > Media types > Email trägst du
SMTP server,SMTP server port,SMTP heloundSMTP email(Absenderadresse) ein. Bei BedarfConnection securityundAuthenticationaktivieren. Den Media type per Enabled einschalten. - 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. - 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
Emailaktivieren.
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
DBPasswordinzabbix_server.confoder der Dienst läuft nicht. Prüfe mitsudo journalctl -u zabbix-server -n 50und starte den Dienst neu. - „no active checks on server“ im Agent-Log: Der
Hostnameinzabbix_agent2.confstimmt nicht exakt (case-sensitive!) mit dem GUI-Host-Namen überein. - Schema-Import oder Trigger-Anlage schlägt fehl: Falscher DB-Zeichensatz. Die Datenbank muss
utf8mb4undutf8mb4_binverwenden. - Import-Fehler bei Binary Logging: Vergessenes
set global log_bin_trust_function_creators = 1vor dem Import. Danach wieder auf0setzen. - ZBX-Anzeige bleibt rot: Firewall blockiert. Port
10050muss vom Server zum Agent (passiv) bzw.10051vom Agent zum Server (aktiv) offen sein. - Zeitzonen-Warnung im Frontend:
date.timezonenicht 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
- Datenbank-Unterbau sauber aufsetzen: MariaDB/MySQL installieren und absichern
- Messwerte ansprechend visualisieren: Grafana-Dashboards bauen: Datenquelle und Panel
- Mehr rund ums Thema Überwachung: Anleitungen aus der Kategorie Monitoring
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.