SSD Nodes Learn Hosting plans →
Anleitungen Matt ConnorVon Matt Connor

Zabbix 7.0 LTS auf Ubuntu 24.04 installieren

Zabbix 7.0 LTS auf Ubuntu 24.04 einrichten: Repository, MySQL-Schema, nginx, PHP-Frontend und agent2 konfigurieren und typische Setup-Fehler beheben.

Was Sie erstellen

Eine einzelne Ubuntu-24.04-VPS mit dem vollständigen Zabbix-7.0-LTS-Stack: dem zabbix-server-Daemon, der Abfragen ausführt und Alarme auslöst, einer MariaDB/MySQL-Datenbank, die jede Metrik speichert, einem von nginx bereitgestellten PHP-Frontend und zabbix-agent2, das Metriken von diesem System erfasst. Sobald die Installation läuft, verbinden Sie sie mit einem zweiten Server, verknüpfen ein Template und erhalten eine E-Mail, sobald ein Datenträger voll läuft oder ein Dienst ausfällt.

Zabbix ist umfangreicher als ein Statusseiten-Tool: Es ist ein echtes Zeitreihensystem mit Templates, Triggern, Eskalationen und Aufbewahrung historischer Daten. Der meiste Aufwand steckt in drei Schritten, die häufig übersprungen werden: dem Import des Datenbankschemas, dem Setzen des Datenbankpassworts, das der Server tatsächlich liest, und dem Auskommentieren von zwei Zeilen in der nginx-Konfiguration. Wenn diese Punkte stimmen, führt der restliche Ablauf durch einen Assistenten. Wenn Sie nur Verfügbarkeitsprüfungen und eine teilbare Statusseite benötigen, erledigt das ein leichtgewichtiges Uptime-Kuma-Statusmonitoring in einem Container. Zabbix rechtfertigt seinen höheren Ressourcenbedarf, wenn Sie Schwellenwerte pro Metrik und Eskalationen für viele Hosts benötigen.

Verwenden Sie die 7.0-LTS-Reihe. Server, Frontend, agent2 und Schema sind aufeinander abgestimmt versioniert, und dafür werden jahrelang Sicherheitsupdates bereitgestellt. Prüfen Sie vor dem Kopieren des Repository-Dateinamens unten kurz die offizielle Zabbix-Downloadseite. Das latest-Releasepaket konfiguriert nur das 7.0-Repository. Es legt kein Point-Release fest. apt installiert anschließend die jeweils im Repository verfügbaren 7.0.x-Pakete. Dadurch erhalten Sie die neueste verfügbare Version. Auf der Seite können auch nummerierte 7.0-N-Releasepakete aufgeführt sein. Diese Nummer versioniert jedoch die Einrichtung des Repositorys, nicht den Zabbix-Build. Alle anderen Befehle in diesem Abschnitt bleiben in der gesamten 7.0-Reihe unverändert.

Dimensionierung, Ports und Voraussetzungen

Gehen Sie von einem frischen Ubuntu 24.04 KVM VPS mit root- oder sudo-Zugriff aus. Seien Sie realistisch bei den Ressourcen: 2 GB RAM und zwei vCPUs sind das absolute Minimum für Server, Datenbank, Nginx und PHP auf einem System, wenn Sie eine Handvoll Hosts überwachen. Ein 1-GB-System startet zwar, aber die Datenbank leidet unter Ressourcenmangel, sobald die Historie wächst. Planen Sie ab einigen Dutzend Hosts mit 4 GB RAM. Bei mehr als hundert Hosts sollten Sie die Datenbank auf einen eigenen Server auslagern. Der Speicherbedarf wächst mit der Anzahl der erfassten Datenpunkte und der Aufbewahrungsdauer der Historie. Planen Sie zu Beginn einige Gigabyte ein; der Housekeeper bereinigt alte Daten gemäß den von Ihnen festgelegten Aufbewahrungsfristen.

Ports: 80 und 443 für das Frontend, entweder öffentlich oder auf Ihre eigene IP beschränkt. Der Server lauscht auf TCP 10051 für aktive Agenten, die Daten übertragen, und jeder Agent lauscht auf TCP 10050, damit der Server ihn abfragen kann. Öffnen Sie nur die Ports, die Sie tatsächlich freigeben, falls eine Firewall vorgeschaltet ist. Ein DNS-A-Record für das Frontend ist empfehlenswert, da Sie ein echtes Zertifikat benötigen. Da eine Zabbix-Instanz alle anderen Dienste überwacht, gehört sie in den umfassenden Self-Hosting-Stack für 2026 und sollte nicht nachträglich als isolierte Lösung hinzugefügt werden.

Schritt 1: Offizielles Zabbix 7.0 Repository hinzufügen

Das Paket zabbix-release hat eine einzige Aufgabe: Es legt die apt-Quellenliste und den Signierungsschlüssel auf Ihrem System ab. Installieren Sie es und aktualisieren Sie anschließend den Index.

wget https://repo.zabbix.com/zabbix/7.0/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

Falls wget den Fehler 404 Not Found ausgibt, hat sich der Dateiname geändert. Öffnen Sie die Zabbix-Downloadseite, wählen Sie Ubuntu 24.04 aus und kopieren Sie die exakte zabbix-release-URL, die dort angezeigt wird. Ein erfolgreiches apt update zeigt eine repo.zabbix.com-Zeile ohne Schlüsselwarnung an. The following signatures couldn't be verified because the public key is not available bedeutet, dass das Release-Paket seinen Schlüssel nicht installiert hat; führen Sie in diesem Fall dpkg -i erneut aus und aktualisieren Sie danach noch einmal.

Schritt 2, Installation von Server, Frontend und Agent

Installieren Sie den für MySQL kompilierten Server, das PHP-Frontend, die nginx-Konfiguration, die SQL-Schemadateien und den agent2 in einem Durchgang.

sudo apt install -y zabbix-server-mysql zabbix-frontend-php \
  zabbix-nginx-conf zabbix-sql-scripts zabbix-agent2

zabbix-server-mysql ist der für MySQL/MariaDB kompilierte Server; für PostgreSQL installieren Sie stattdessen zabbix-server-pgsql und passen Sie die unten aufgeführten Datenbankschritte an. zabbix-sql-scripts enthält das Schema, das Sie als Nächstes importieren; es handelt sich in 7.0 um ein separates Paket. Das Vergessen dieses Pakets ist genau der Grund, warum der Importpfad später als fehlend gemeldet wird. Keines dieser Pakete installiert automatisch eine Datenbank-Engine. Installieren Sie daher jetzt MariaDB, falls der Server noch über keine verfügt.

sudo apt install -y mariadb-server
sudo systemctl enable --now mariadb

Schritt 3: Datenbank mit dem richtigen Zeichensatz erstellen

Zabbix stellt strenge Anforderungen an die Sortierung: Unterstützt werden nur utf8mb4 mit utf8mb4_bin oder das ältere utf8 (auch utf8mb3 genannt) mit utf8_bin. Die Dokumentation empfiehlt ausdrücklich utf8mb4 mit utf8mb4_bin. Diese Kombination verwendet diese Anleitung. Öffnen Sie mit sudo mysql eine Root-Shell und führen Sie Folgendes aus:

CREATE DATABASE zabbix CHARACTER SET utf8mb4 COLLATE utf8mb4_bin;
CREATE USER zabbix@localhost IDENTIFIED BY 'choose-a-strong-password';
GRANT ALL PRIVILEGES ON zabbix.* TO zabbix@localhost;
SET GLOBAL log_bin_trust_function_creators = 1;
FLUSH PRIVILEGES;

Die Zeile mit SET GLOBAL dient beim Import als Sicherheitsvorkehrung. Das Zabbix-Schema erstellt während des Imports deterministische Trigger. Ein Konto ohne SUPER-Berechtigung wie zabbix kann diese bei aktiviertem Binary Logging nicht erstellen. MySQL 8 aktiviert Binary Logging standardmäßig, und einige verwaltete MariaDB-Builds tun dies ebenfalls. Die Standardinstallation von MariaDB aktiviert es nicht. Lassen Sie das Flag auf einem Server mit aktiviertem Binary Logging weg, bricht der Import mit ERROR 1419 (HY000): You do not have the SUPER privilege and binary logging is enabled ab. Wenn Sie es als root setzen, wird dieses Problem behoben. Nach dem Import deaktivieren Sie die Einstellung wieder. Notieren Sie das Passwort exakt. Die Serverkonfiguration muss bytegenau dieselbe Zeichenfolge verwenden.

Schritt 4: Importieren des Schemas (der oft übersprungene Schritt)

Dies ist der häufigste Grund, warum ein neues Frontend nicht lädt: Die von Ihnen erstellte Datenbank ist leer. Laden Sie das in zabbix-sql-scripts enthaltene Schema hinein.

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

Der Befehl fragt nach dem zabbix-Passwort, läuft auf einem kleinen VPS etwa dreißig bis sechzig Sekunden und gibt bei Erfolg keine Meldung aus; Stille ist hier das korrekte Ergebnis. zcat: /usr/share/zabbix-sql-scripts/mysql/server.sql.gz: No such file or directory bedeutet, dass das Paket zabbix-sql-scripts nicht installiert ist (kehren Sie zu Schritt 2 zurück). ERROR 1045 (28000): Access denied for user 'zabbix'@'localhost' bedeutet, dass das Passwort oder die Berechtigung aus Schritt 3 falsch ist. Sobald der Vorgang abgeschlossen ist, deaktivieren Sie das Sicherheits-Flag wieder:

sudo mysql -e "SET GLOBAL log_bin_trust_function_creators = 0;"

Bestätigen Sie den Import mit sudo mysql -e "SELECT COUNT(*) FROM zabbix.users;"; eine Zahl, statt eines doesn't exist-Fehlers, bedeutet, dass das Schema erfolgreich geladen wurde.

Schritt 5: Datenbankpasswort in zabbix_server.conf festlegen

Der Server liest seine Datenbank-Anmeldedaten aus /etc/zabbix/zabbix_server.conf. Nur das Passwort muss konfiguriert werden, da DBName und DBUser bereits standardmäßig auf zabbix gesetzt sind. Entfernen Sie das Kommentarzeichen vor der Zeile # DBPassword= und legen Sie den Wert fest:

DBName=zabbix
DBUser=zabbix
DBPassword=choose-a-strong-password

Das Passwort muss exakt dem aus Schritt 3 entsprechen. Ein leeres oder falsches DBPassword ist die häufigste Ursache für die Meldung "Zabbix server is not running", die später auftreten kann: Der Daemon startet, scheitert bei der Anmeldung und beendet sich. Auf dem Bildschirm erscheint keine Fehlermeldung; diese findet sich ausschließlich im Log.

Schritt 6, Nginx auf das Frontend verweisen

Das Paket zabbix-nginx-conf installiert einen Server-Block unter /etc/zabbix/nginx.conf und verlinkt diesen in Nginx von /etc/nginx/conf.d/zabbix.conf aus. Da die Zeilen listen und server_name jedoch auskommentiert sind, liefert Nginx für Zabbix keine Inhalte aus, bis Sie diese bearbeiten:

server {
    listen          80;
    server_name     zabbix.example.com;
    ...
}

Verwenden Sie Ihre Domain oder die öffentliche IP-Adresse des Servers, falls noch kein DNS konfiguriert ist. Beachten Sie zwei Fallstricke. Die Standard-Willkommensseite von Nginx unter Ubuntu lauscht ebenfalls auf Port 80 und ist als Standard-Server markiert. Sie greift daher bei jeder Anfrage, deren Name nicht explizit zugeordnet ist. Entfernen Sie diese, da sonst die falsche Seite geladen wird: sudo rm -f /etc/nginx/sites-enabled/default. Falls /etc/nginx/conf.d/zabbix.conf aus irgendeinem Grund fehlt (eine bekannte Eigenheit des Pakets), erstellen Sie den Link manuell mit sudo ln -s /etc/zabbix/nginx.conf /etc/nginx/conf.d/zabbix.conf. Testen Sie anschließend die Konfiguration und laden Sie Nginx neu:

sudo nginx -t
sudo systemctl reload nginx

nginx -t sollte test is successful ausgeben. Wenn stattdessen nginx: [emerg] a duplicate default server for 0.0.0.0:80 ausgegeben wird, beanspruchen sowohl die Standard-Seite als auch der Zabbix-Block default_server. Entfernen Sie die Standard-Seite und führen Sie den Test erneut aus. Häufiger kommt es vor, dass der Test zwar nur mit einer conflicting server name-Warnung durchläuft, der Browser aber dennoch die einfache Willkommensseite anzeigt: Dies liegt daran, dass die Standard-Seite bei einem nicht übereinstimmenden Namen bevorzugt wird. Das Entfernen der Standard-Seite behebt dieses Problem.

Schritt 7, Dienste starten und aktivieren

Starten Sie den Server, den Agenten, PHP-FPM sowie nginx und aktivieren Sie diese, damit sie nach einem Neustart automatisch geladen werden.

sudo systemctl restart zabbix-server zabbix-agent2 nginx php8.3-fpm
sudo systemctl enable  zabbix-server zabbix-agent2 nginx php8.3-fpm

Ubuntu 24.04 liefert PHP 8.3 aus, daher lautet der FPM-Dienst php8.3-fpm; das Paket zabbix-nginx-conf betreibt sein Frontend unter demselben Master-Prozess. Überprüfen Sie, ob der Server gestartet wurde und aktiv bleibt:

sudo systemctl status zabbix-server --no-pager
sudo tail -n 20 /var/log/zabbix/zabbix_server.log

Ein fehlerfreies Log endet mit dem Hinweis, dass der Server gestartet wurde und seine housekeeper-, poller- und trapper-Prozesse laufen. Wenn Sie [Z3001] connection to database 'zabbix' failed: [1045] Access denied for user 'zabbix'@'localhost' sehen, stimmt das DBPassword aus Schritt 5 nicht überein; korrigieren Sie dies und starten Sie den Dienst neu. Eine Zeile mit [Z3005] query failed: [1146] Table 'zabbix.dbversion' doesn't exist bedeutet, dass Sie den Schema-Import in Schritt 4 übersprungen haben, sodass der Server keine Daten lesen kann.

Schritt 8, Abschluss des Web-Setup-Assistenten

Navigieren Sie zu http://your-domain-or-ip. Der Zabbix-Setup-Assistent öffnet sich. Gehen Sie ihn wie folgt durch:

  1. Willkommen, wählen Sie eine Sprache aus.
  2. Überprüfung der Voraussetzungen, jede Zeile sollte standardmäßig OK anzeigen; der paketierte /etc/zabbix/php-fpm.conf-Pool erhöht bereits die von Zabbix benötigten PHP-Limits.
  3. Datenbankverbindung konfigurieren, Datenbanktyp MySQL, Host localhost, Port 0 (dies entspricht dem Standard-Port oder -Socket), Datenbankname zabbix, Benutzer zabbix und das Passwort aus Schritt 3. Falsche Anmeldedaten oder ein fehlendes Schema werden hier sofort gemeldet.
  4. Einstellungen, belassen Sie den Zabbix-Server-Host auf localhost, den Port auf 10051 und vergeben Sie einen Namen für die Installation.
  5. Zusammenfassung vor der Installation, klicken Sie dann auf Installieren; der Assistent schreibt die Datei /etc/zabbix/web/zabbix.conf.php.
  6. Fertigstellen, melden Sie sich als Admin (großes A) mit dem Passwort zabbix an und ändern Sie dieses Passwort umgehend unter Benutzer.

Falls der Assistent Cannot create the configuration file meldet, kann der Web-Benutzer nicht in /etc/zabbix/web/ schreiben. Laden Sie die angebotene zabbix.conf.php herunter, platzieren Sie diese manuell mit sudo an der entsprechenden Stelle und klicken Sie auf Fertigstellen.

Schritt 9: Lokalen Host hinzufügen und Template zuweisen

Zabbix überwacht sich nicht automatisch selbst. Navigieren Sie zu Data collection → Hosts → Create host, setzen Sie den Hostnamen auf zabbix-server, fügen Sie ihn der Gruppe Linux servers hinzu und erstellen Sie eine Agent-Schnittstelle mit der IP 127.0.0.1 und dem Port 10050. Verknüpfen Sie unter Templates das Template Linux by Zabbix agent (die Variante für passives Polling; Linux by Zabbix agent active nutzt stattdessen den Push-Modus des Agenten). Speichern Sie die Konfiguration.

Innerhalb einer Minute erscheint in der Host-Zeile ein grünes ZBX-Label und die Metriken treffen unter Monitoring → Latest data ein. Ein rotes ZBX-Label bedeutet, dass der Server den Agenten nicht erreichen kann. Dies ist ein Fehlerzustand, der weiter unten behandelt wird, und kein Fehler in diesem Schritt.

Schritt 10: Ein nützlicher Trigger und eine E-Mail-Benachrichtigung

Das Linux by Zabbix agent-Template enthält bereits Trigger für hohe CPU-Auslastung, wenig Arbeitsspeicher und volle Dateisysteme. Sobald Sie es verknüpfen, erhalten Sie daher sofort entsprechende Alarme. Um den Aufbau eines Triggers zu sehen, erstellen Sie einen eigenen: Öffnen Sie den Host, wechseln Sie zu Triggers → Create trigger, nennen Sie ihn Root filesystem over 90% full on {HOST.NAME}, setzen Sie den Schweregrad auf High und verwenden Sie diesen Ausdruck:

last(/zabbix-server/vfs.fs.dependent.size[/,pused])>90

vfs.fs.dependent.size[/,pused] ist das Element für die prozentuale Belegung, das die Dateisystemerkennung des Templates für das Root-Dateisystem erstellt. Das Linux-Template von 7.0 erfasst vfs.fs.get einmal und leitet daraus abhängige Elemente pro Mountpoint ab. Der Trigger wird daher ohne zusätzliche Datenerfassung ausgelöst. Speichern Sie ihn.

Ein Trigger markiert zunächst nur eine Zeile im Dashboard farblich. Erst eine Action benachrichtigt eine Person. Konfigurieren Sie unter Alerts → Media types → Email den SMTP-Server, den Port, die Absenderadresse, die Verbindungssicherheit, üblicherweise STARTTLS, und gegebenenfalls die Zugangsdaten für das Relay. Verwenden Sie anschließend Test. Ein Fehler an dieser Stelle bedeutet, dass der SMTP-Pfad nicht korrekt ist, bevor ein echter Alarm davon abhängt. Hinterlegen Sie für den Benutzer Admin unter Users → Users → Admin → Media → Add eine Adresse und wählen Sie aus, bei welchen Schweregraden Benachrichtigungen gesendet werden. Verknüpfen Sie die E-Mail anschließend unter Alerts → Actions → Trigger actions → Create action: Fügen Sie eine Bedingung wie Trigger severity >= Warning hinzu und konfigurieren Sie unter Operations den Versand an Admin über Email. Speichern und aktivieren Sie die Action. Bevorzugen Sie einen Chat? Zabbix 7.0 enthält Webhook-Medientypen für Slack, Discord und Telegram. Für jeden Dienst ist jedoch eine eigene Einrichtung erforderlich, anstelle der SMTP-Einstellungen. Telegram benötigt beispielsweise einen über BotFather erstellten Bot, dessen Token im Parameter api_token des Medientyps hinterlegt wird, sowie die Chat-ID des Empfängers im Feld Send to des Benutzers. Folgen Sie der README des jeweiligen Integrationsmoduls, aktivieren Sie den Medientyp, weisen Sie ihn einem Benutzer zu und verwenden Sie ihn in einer Action genauso wie Email.

Überwachung eines zweiten Servers mit dem Agenten

Um einen weiteren Server zu überwachen, fügen Sie dort ebenfalls das Zabbix-Repository hinzu, da Ubuntu 24.04 keine eigenen Zabbix-Pakete bereitstellt. Installieren Sie anschließend nur den Agenten:

wget https://repo.zabbix.com/zabbix/7.0/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 install -y zabbix-agent2

Bearbeiten Sie /etc/zabbix/zabbix_agent2.conf, setzen Sie Server auf die IP-Adresse des Zabbix-Servers (für passives Polling) und für aktive Prüfungen ServerActive sowie einen eindeutigen Hostname, der mit dem Host übereinstimmt, den Sie im Frontend erstellen:

Server=10.0.0.10
ServerActive=10.0.0.10
Hostname=web-01

Führen Sie sudo systemctl restart zabbix-agent2 aus und öffnen Sie TCP 10050 vom Zabbix-Server zu diesem Rechner. Der Neustart ist wichtig: Das Paket hat den Agenten unmittelbar nach der Installation mit der mitgelieferten Server=127.0.0.1 gestartet, und der Agent liest seine Datei nur beim Start ein. enable --now würde feststellen, dass er bereits läuft, und nichts ändern, sodass der Agent weiterhin Anfragen Ihres Zabbix-Servers ablehnen würde. Der Start beim Booten ist bereits konfiguriert, da das Paket die Unit ebenfalls aktiviert hat. Erstellen Sie im Frontend einen Host, dessen Agent-Schnittstelle auf die IP-Adresse dieser Maschine zeigt, verknüpfen Sie die Linux-Vorlage, und die Daten werden innerhalb einer Minute gemeldet.

Fehlermodi und die zugehörigen Meldungen

Das Frontend zeigt Error connecting to database oder einen Datenbankfehler. Im Datenbank-Schritt des Assistenten bedeutet Access denied for user 'zabbix'@'localhost' (using password: YES), dass das Passwort nicht mit Schritt 3 übereinstimmt oder das GRANT nicht ausgeführt wurde. Wenn die Datenbankverbindung steht, das Frontend aber The frontend does not match Zabbix database oder Table 'zabbix.users' doesn't exist meldet, wurde der Schema-Import in Schritt 4 übersprungen oder ist fehlgeschlagen. Führen Sie diesen erneut in einer frisch erstellten Datenbank aus.

Oranges Banner: Zabbix server is not running: the information displayed may not be current. Das Frontend ist aktiv, kann aber den Live-Server nicht erreichen. Es gibt drei Ursachen, sortiert nach Wahrscheinlichkeit. Der Dienst ist beendet; prüfen Sie systemctl status zabbix-server und starten Sie ihn. Der Dienst läuft, kann aber die Datenbank nicht erreichen; das Log zeigt [Z3001] connection to database 'zabbix' failed: [1045] Access denied, was auf ein falsches oder leeres DBPassword hindeutet. Oder das Frontend verweist auf den falschen Server, gespeichert als Host localhost und Port 10051 in /etc/zabbix/web/zabbix.conf.php. Unter Ubuntu gibt es standardmäßig kein SELinux, daher trifft die in RHEL-Anleitungen genannte Ursache mit dem SELinux-Socket hier nicht zu; meist liegt es am Datenbankpasswort oder einem gestoppten Dienst.

Der Host zeigt ein rotes ZBX-Label; Elementfehler Get value from agent failed: cannot connect to [[127.0.0.1]:10050]: [111] Connection refused. Der Agent läuft nicht oder akzeptiert keine Verbindungen. Prüfen Sie systemctl status zabbix-agent2 und bestätigen Sie ListenPort=10050. Ein Timeout anstelle von "connection refused" bedeutet, dass eine Firewall den Port 10050 blockiert. Das zugehörige Received empty response from Zabbix Agent. Assuming that agent dropped connection because of access permissions. bedeutet, dass der Agent erreichbar ist, aber seine Server=-Zeile die IP des Zabbix-Servers nicht enthält. Fügen Sie diese hinzu und starten Sie den Agent neu.

Einfache Nginx-Willkommensseite oder 502 Bad Gateway. Die Willkommensseite bedeutet, dass die Standard-Website noch aktiviert ist oder der Zabbix-Block nicht verknüpft wurde. Entfernen Sie /etc/nginx/sites-enabled/default und stellen Sie sicher, dass /etc/nginx/conf.d/zabbix.conf existiert, wie in Schritt 6 beschrieben. Ein 502 bedeutet, dass Nginx PHP erreicht hat, aber PHP-FPM nicht läuft oder auf einem anderen Socket lauscht. Starten Sie php8.3-fpm und prüfen Sie, ob der fastcgi_pass-Socket im Zabbix-Block mit dem laufenden Pool übereinstimmt.

Backups, Upgrades und TLS

Die Datenbank enthält die gesamte Historie. Erstellen Sie daher regelmäßig Backups mit mysqldump und speichern Sie den Dump außerhalb des Servers:

mysqldump --single-transaction zabbix | gzip > zabbix-$(date +%F).sql.gz

Die Konfigurationsdateien von /etc/zabbix sind klein und sollten ebenfalls gesichert werden, sind jedoch rekonstruierbar; die Daten hingegen nicht. Die Wiederherstellung erfolgt in umgekehrter Reihenfolge: Datenbank erstellen, Dump importieren, Konfiguration auf die Datenbank verweisen lassen.

Upgrades innerhalb der 7.0-Reihe sind reguläre apt update && apt upgrade-Durchläufe. Der Server wendet beim nächsten Start automatisch alle Schema-Migrationen an. Aktualisieren Sie daher die Pakete und starten Sie zabbix-server neu. Ein Wechsel auf eine zukünftige Hauptversion ist ein bewusster Schritt. Lesen Sie dazu die Upgrade-Hinweise, erstellen Sie vorab einen Datenbank-Dump und rechnen Sie mit einer irreversiblen Schema-Änderung. Genau dieser einseitige Sprung ist der Grund, warum Sie eine LTS-Linie festlegen und beibehalten sollten.

Betreiben Sie das Frontend nicht über unverschlüsseltes HTTP. Sobald DNS auf den Server verweist, sichern Sie diesen mit einem Zertifikat ab, wie unter Certbot und Let's Encrypt mit Nginx unter Ubuntu 24.04 beschrieben. Dies schreibt den Server-Block so um, dass er auf Port 443 lauscht und Anfragen von Port 80 weiterleitet. Da Sie einen Server absichern, der sich zur Überwachung anderer Systeme verbindet, sollten Sie auch den SSH-Zugriff mit fail2ban zum Blockieren von SSH-Brute-Force-Angriffen einschränken. Ein Login für Monitoring-Zwecke sollte nicht im Klartext übertragen werden, und der Zugang sollte nicht offen für Passwort-Rater sein.

FAQ

Benötige ich den Zabbix-Agenten oder kann ich auch ohne ihn überwachen?

Beides ist möglich. Der Agent (agent2) liefert detaillierte Metriken pro Host – wie CPU, Arbeitsspeicher, Festplatten, Prozesse, Dienste und Logdateien – und ist die Standardwahl für Server, die Sie selbst verwalten. Agentenloses Monitoring deckt Geräte ab, auf denen keine Software installiert werden kann: SNMP für Switches und Drucker, ICMP-Ping für die Erreichbarkeit, HTTP-Checks für Endpunkte und IPMI für den Hardware-Status. Die meisten produktiven Umgebungen nutzen eine Kombination aus beidem.

Warum meldet das Frontend, dass der Zabbix-Server nicht läuft?

Das Frontend ist aktiv, kann aber keinen laufenden zabbix-server-Prozess erreichen. Meistens ist der Server gestartet, konnte sich aber nicht anmelden, weil DBPassword in zabbix_server.conf falsch oder leer ist, und hat sich daraufhin sofort beendet. Führen Sie systemctl status zabbix-server aus und lesen Sie /var/log/zabbix/zabbix_server.log; eine [Z3001] connection to database ... failed-Zeile bestätigt dies. Korrigieren Sie das Passwort und starten Sie den Dienst neu; die Warnmeldung verschwindet innerhalb einer Minute.

Muss ich MySQL verwenden oder kann ich PostgreSQL nutzen?

Beides wird vollständig unterstützt: zabbix-server-mysql mit MariaDB oder MySQL, wie in dieser Anleitung beschrieben, oder zabbix-server-pgsql mit PostgreSQL. Bei kleinen Installationen spielt die Wahl kaum eine Rolle. Bei großen Installationen partitioniert PostgreSQL mit der TimescaleDB-Erweiterung die Verlaufstabellen und macht die Bereinigung (Housekeeping) deutlich effizienter, weshalb große Umgebungen dazu tendieren. Entscheiden Sie sich für eine Datenbank und bleiben Sie dabei; eine spätere Migration erfordert einen vollständigen Export und Re-Import, nicht nur eine Änderung der Konfiguration.

Wie viel Arbeitsspeicher benötigt ein Zabbix-All-in-One-Server?

Für ein System, das eine Handvoll Hosts überwacht, sind 2 GB ein realistisches Minimum; 4 GB bieten bei einigen Dutzend Hosts ausreichend Reserven. Der Arbeitsspeicher wird hauptsächlich vom Datenbank-Cache und den Pollern des Servers belegt. Ein 1-GB-VPS läuft zwar, lässt die Datenbank aber bei wachsendem Verlauf verhungern. Ab mehr als hundert Hosts sollten Sie die Datenbank auf einen eigenen Server auslagern und deren Buffer Pool optimieren, anstatt immer mehr Arbeitsspeicher in eine einzelne Maschine zu stecken.

Ist Zabbix für ein paar Server überdimensioniert?

Das kann sein. Wenn Sie lediglich wissen müssen, ob ein System läuft, und eine Seite benötigen, die Sie teilen können, ist ein schlankeres Werkzeug wie Uptime Kuma für Uptime- und Status-Monitoring schneller eingerichtet und auf einen Blick leichter zu erfassen. Wählen Sie Zabbix, wenn Sie Schwellenwerte pro Metrik, historische Graphen, Vorlagen für Hosts und Eskalationsregeln benötigen – also Funktionen, die ein einfacher Pinger für eine ganze Flotte nicht bieten kann.