Zabbix-Proxy nativ auf Ubuntu aufsetzen: APT-Installation, aktiver und passiver Modus
Einen Zabbix-Proxy aus dem offiziellen APT-Repository auf Ubuntu 22.04 oder 24.04 installieren und als aktiven oder passiven Proxy für entfernte Standorte und DMZ-Segmente konfigurieren – ohne Container-Overhead, dafür mit echtem Puffer-Schutz für den Zabbix-Server.

Wer mehrere Standorte, DMZ-Segmente oder langsame WAN-Strecken mit Zabbix überwacht, kennt das Problem: Der zentrale Zabbix-Server muss alle Hosts direkt erreichen können, und jede Verbindungsunterbrechung hinterlässt Lücken in den Metriken. Ein Zabbix-Proxy löst genau das – er sammelt Monitoring-Daten lokal und leitet sie gebuffert an den Server weiter, selbst wenn die Verbindung zum Rechenzentrum kurz aussetzt. Diese Anleitung zeigt, wie du einen Proxy aus dem offiziellen Zabbix-Repository auf Ubuntu 22.04 oder 24.04 nativ installierst, die passende Datenbank wählst und den Proxy im aktiven oder passiven Modus betreibst. Container-Overhead entfällt dabei vollständig.
Voraussetzungen
- Ubuntu 22.04 LTS oder 24.04 LTS (Minimal-Server-Installation)
- Sudo- oder Root-Rechte auf dem Proxy-Host
- Netzwerkverbindung zum Zabbix-Server (TCP-Port 10051)
- Mindestens 1 GB RAM; 2 GB empfohlen bei MySQL/MariaDB-Betrieb
- Ausreichend Festplattenplatz für den
ProxyOfflineBuffer(Standard: 1 Stunde Daten) - IP-Adresse oder FQDN des Zabbix-Servers bekannt
- Geplanter Proxy-Name (
Hostname) – muss vorab mit dem Team abgestimmt sein, da er case-sensitive exakt im Frontend eingetragen werden muss - Laufender Zabbix-Server in derselben Major-Version (z. B. beide 7.2.x)
Schritt 1: Zabbix-Repository einrichten
Zabbix stellt fertige Release-Pakete für Ubuntu 22.04 und 24.04 bereit. Das Paket richtet das offizielle APT-Repository ein und importiert den GPG-Schlüssel.
# Ubuntu 22.04 (Jammy)
wget https://repo.zabbix.com/zabbix/7.2/release/ubuntu/pool/main/z/zabbix-release/zabbix-release_7.2-1+ubuntu22.04_all.deb
sudo dpkg -i zabbix-release_7.2-1+ubuntu22.04_all.deb
sudo apt update
# Ubuntu 24.04 (Noble) – stattdessen:
# wget https://repo.zabbix.com/zabbix/7.2/release/ubuntu/pool/main/z/zabbix-release/zabbix-release_7.2-1+ubuntu24.04_all.deb
# sudo dpkg -i zabbix-release_7.2-1+ubuntu24.04_all.deb
# sudo apt updateVerifizieren: apt-cache policy zabbix-proxy-sqlite3 sollte eine Kandidaten-Version aus repo.zabbix.com anzeigen.
Schritt 2: Proxy-Paket und Datenbank installieren
Welches Paket du wählst, hängt vom Einsatzumfeld ab. Die folgende Tabelle gibt eine Entscheidungshilfe:
| Datenbank | Paketname | Schema-Import | Empfehlung |
|---|---|---|---|
| SQLite3 | zabbix-proxy-sqlite3 | Automatisch beim ersten Start | Kleinere Standorte, Test, Einstieg |
| MySQL / MariaDB | zabbix-proxy-mysql | Manuell (proxy.sql) | Produktion, mittlere Umgebungen |
| PostgreSQL | zabbix-proxy-pgsql | Manuell (proxy.sql) | Produktion, große Umgebungen |
Option A: SQLite3 (empfohlen für den Einstieg)
Der einfachste Weg – kein separater Datenbankserver, kein Schema-Import, sofort betriebsbereit:
sudo apt install -y zabbix-proxy-sqlite3 zabbix-sql-scriptsDas Schema wird beim ersten Proxy-Start automatisch in die unter DBName angegebene SQLite3-Datei geschrieben. Keinen manuellen Import versuchen – das würde die Datenbankstruktur korrumpieren.
Option B: MySQL / MariaDB (Produktion)
sudo apt install -y zabbix-proxy-mysql zabbix-sql-scripts mariadb-server
sudo systemctl enable --now mariadb
# Datenbank und Benutzer anlegen
sudo mysql -uroot -e "CREATE DATABASE zabbix_proxy CHARACTER SET utf8mb4 COLLATE utf8mb4_bin;"
sudo mysql -uroot -e "CREATE USER 'zabbix'@'localhost' IDENTIFIED BY 'sicheresPasswort';"
sudo mysql -uroot -e "GRANT ALL PRIVILEGES ON zabbix_proxy.* TO 'zabbix'@'localhost';"
# Schema importieren
sudo cat /usr/share/zabbix-sql-scripts/mysql/proxy.sql \
| mysql --default-character-set=utf8mb4 -uzabbix -p'sicheresPasswort' zabbix_proxyWichtig: Niemals die Datenbank des Zabbix-Servers mitbenutzen. Wenn Proxy und Server auf demselben Host laufen, zwingend unterschiedliche Datenbanknamen verwenden (z. B. zabbix für den Server, zabbix_proxy für den Proxy).
Verifizieren: sudo mysql -uzabbix -p'sicheresPasswort' -e "SHOW TABLES;" zabbix_proxy – die Ausgabe sollte mehrere Tabellennamen (u. a. hosts, items) zeigen.
Schritt 3: zabbix_proxy.conf konfigurieren
Die zentrale Konfigurationsdatei liegt unter /etc/zabbix/zabbix_proxy.conf. Je nach gewähltem Modus unterscheiden sich einige Parameter. Die folgenden Blöcke zeigen vollständige Beispielkonfigurationen für beide Modi.
Aktiver Proxy – ProxyMode=0 (empfohlen für DMZ und Remote-Standorte)
Der Proxy baut selbst eine Verbindung zum Server auf. In der Firewall ist nur eine ausgehende Regel nötig – ideal für NAT-Umgebungen und DMZ-Segmente, wo eingehende Verbindungen von außen blockiert werden.
ProxyMode=0
Server=192.168.1.10 # IP oder FQDN des Zabbix-Servers
Hostname=proxy-standort-01 # Exakt wie im Frontend (case-sensitive!)
# Datenbank – SQLite3-Variante:
DBName=/var/lib/zabbix/zabbix_proxy.db
# Datenbank – MySQL/MariaDB-Variante (auskommentieren, wenn MySQL genutzt wird):
# DBName=zabbix_proxy
# DBUser=zabbix
# DBPassword=sicheresPasswort
ProxyLocalBuffer=0 # 0 = synchronisierte Daten sofort verwerfen (Standard)
ProxyOfflineBuffer=12 # Stunden Puffer bei Server-Ausfall (Standard: 1!)
ProxyConfigFrequency=300 # Konfiguration alle 5 Min vom Server holen (Standard: 3600)
DataSenderFrequency=1 # Daten jede Sekunde senden (Standard)
LogFile=/var/log/zabbix/zabbix_proxy.log
LogFileSize=10 # MB; 0 = kein automatisches Rotate
ListenPort=10051 # Im aktiven Modus nicht relevant, aber definierbar
Timeout=4Passiver Proxy – ProxyMode=1 (für interne Netzwerke)
Der Zabbix-Server initiiert die Verbindung zum Proxy. Port 10051/TCP am Proxy muss eingehend vom Server erreichbar sein.
ProxyMode=1
Server=192.168.1.10 # Erlaubte Server-IPs (Komma-getrennt oder CIDR)
Hostname=proxy-standort-01
# Datenbank – SQLite3-Variante:
DBName=/var/lib/zabbix/zabbix_proxy.db
ProxyOfflineBuffer=12
ProxyConfigFrequency=300
ListenPort=10051 # Proxy hört auf diesem Port; muss vom Server erreichbar sein
LogFile=/var/log/zabbix/zabbix_proxy.log
LogFileSize=10
Timeout=4Proxy-Modi im Vergleich
| Eigenschaft | Aktiv (ProxyMode=0) | Passiv (ProxyMode=1) |
|---|---|---|
| Verbindungsrichtung | Proxy → Server | Server → Proxy |
| Firewall-Anforderung | Ausgehend TCP 10051 vom Proxy zum Server | Eingehend TCP 10051 am Proxy vom Server |
| Geeignet für | DMZ, Remote-Standorte, NAT-Umgebungen | Interne Netzwerke mit Server-Kontrolle |
| Konfigurationsabruf | Proxy fragt Server aktiv an | Server überträgt Konfiguration zum Proxy |
| NAT-Freundlichkeit | Hoch – nur ausgehend nötig | Gering – Server muss Proxy direkt erreichen |
Schritt 4: Dienst starten und aktivieren
sudo systemctl restart zabbix-proxy
sudo systemctl enable zabbix-proxy
sudo systemctl status zabbix-proxyVerifizieren: sudo systemctl status zabbix-proxy zeigt active (running). Im Log (sudo tail -f /var/log/zabbix/zabbix_proxy.log) sollten Zeilen wie proxy #0 started und – beim aktiven Modus – sending configuration data erscheinen. Fehlermeldungen wie cannot connect to Zabbix server deuten auf ein Firewall- oder Adressproblem hin.
Schritt 5: Firewall mit UFW konfigurieren
# Aktiver Proxy: ausgehende Verbindung zum Server ist in UFW meist standardmäßig erlaubt.
# Passiver Proxy: eingehende Verbindung vom Server freigeben:
sudo ufw allow from 192.168.1.10 to any port 10051 proto tcp
sudo ufw reload
sudo ufw statusBei einem aktiven Proxy in einer restriktiven Umgebung (ausgehender Traffic eingeschränkt) muss zusätzlich eine ausgehende Regel für TCP 10051 zum Server angelegt werden.
Schritt 6: Proxy im Zabbix-Frontend registrieren
Ohne diesen Schritt bleibt der Proxy dauerhaft als „nie verbunden" markiert – das ist der häufigste Einrichtungsfehler.
- Zabbix-Frontend öffnen → Administration → Proxies → „Create proxy"
- Proxy name: exakt
proxy-standort-01(case-sensitive, wieHostnamein der Conf) - Proxy mode: Active oder Passive – passend zu
ProxyModein der Konfigdatei - Speichern
- Hosts, die über diesen Proxy überwacht werden sollen, im Host-Editor unter Monitored by Proxy zuweisen
Verifizieren: Nach wenigen Minuten (abhängig von ProxyConfigFrequency) zeigt die Proxy-Liste im Frontend eine aktuelle „Last seen"-Zeit. Ist der Proxy noch nicht verbunden, hilft ein Blick ins Log auf dem Proxy-Host.
Tipp: Aktive Agenten, die über diesen Proxy überwacht werden, müssen in ihrer zabbix_agentd.conf die Proxy-IP als ServerActive eintragen – nicht die Server-IP. Sonst schicken die Agenten Daten am Proxy vorbei direkt zum Server.
Optional: PSK-Verschlüsselung aktivieren
Ohne Transportverschlüsselung können im aktiven Modus Konfigurationsdaten abgegriffen werden – besonders in nicht vertrauenswürdigen Netzwerken ein relevantes Risiko. PSK lässt sich ohne PKI-Infrastruktur schnell einrichten:
# PSK-Schlüssel erzeugen
openssl rand -hex 32 | sudo tee /etc/zabbix/zabbix_proxy.psk
sudo chown zabbix:zabbix /etc/zabbix/zabbix_proxy.psk
sudo chmod 600 /etc/zabbix/zabbix_proxy.pskIn /etc/zabbix/zabbix_proxy.conf ergänzen:
TLSConnect=psk
TLSAccept=psk
TLSPSKFile=/etc/zabbix/zabbix_proxy.psk
TLSPSKIdentity=ZBX-PSK-PROXY01Im Frontend unter Administration → Proxies → [Proxy] → Encryption: Verbindungstyp auf PSK setzen, Identity (ZBX-PSK-PROXY01) und den Schlüsselinhalt aus der PSK-Datei eintragen. Danach Proxy-Dienst neu starten.
Troubleshooting / Typische Fehler
Proxy gilt im Frontend als „nie verbunden"
Fast immer ist der Hostname-Wert in der Konfigdatei nicht identisch mit dem Proxy-Namen im Frontend. Beide Werte sind case-sensitive. Ein Leerzeichen am Ende, ein Groß-/Kleinschreibfehler oder ein Tippfehler genügen. Exakten Vergleich mit grep ^Hostname /etc/zabbix/zabbix_proxy.conf durchführen.
Konfiguration kommt erst nach langer Wartezeit an
Der Standard-ProxyConfigFrequency-Wert von 3600 Sekunden bedeutet: Neue Host-Zuweisungen kommen erst nach bis zu einer Stunde beim aktiven Proxy an. Für Tests und schnelles Rollout auf 60–300 reduzieren oder den Proxy-Dienst kurz neu starten.
Datenverlust bei Server-Ausfall
Der ProxyOfflineBuffer-Standard von 1 Stunde ist für viele Produktionsumgebungen zu knapp. Daten, die älter als dieser Wert sind, werden unwiederbringlich verworfen. Den Wert an die reale Ausfalltoleranz anpassen (z. B. 12 oder 24 Stunden) und dabei den verfügbaren Speicherplatz berücksichtigen.
Passiver Proxy in NAT-Umgebung nicht erreichbar
Im passiven Modus muss der Zabbix-Server den Proxy direkt auf Port 10051 erreichen können. In NAT-Umgebungen oder hinter einer Firewall ohne Port-Forwarding ist das oft nicht realisierbar. Hier ist der aktive Modus die richtige Wahl.
Versionsmismatch zwischen Proxy und Server
Die Major-Version von Proxy und Server muss übereinstimmen (z. B. beide 7.2.x). Unterschiede können zu fehlerhafter Datenübertragung und falschen Timeout-Werten führen. Version prüfen mit: sudo zabbix_proxy --version
SQLite3: kein Schema-Import nötig – trotzdem versucht
Wird bei SQLite3 manuell ein Schema importiert, entsteht eine fehlerhafte oder doppelte Datenbankstruktur. Der Proxy legt das Schema beim ersten Start automatisch an. Nur bei MySQL/MariaDB und PostgreSQL ist ein manueller Import erforderlich.
Häufige Fragen
Welchen Proxy-Modus sollte ich für eine DMZ oder einen Remote-Standort wählen?
Den aktiven Modus (ProxyMode=0). Der Proxy initiiert dabei selbst die Verbindung zum Zabbix-Server auf Port 10051. Es wird ausschließlich eine ausgehende Firewall-Regel benötigt – in DMZ- und NAT-Umgebungen deutlich einfacher umzusetzen als eine eingehende Freigabe.
Welche Datenbank ist für einen Zabbix-Proxy empfehlenswert?
Für kleine bis mittlere Standorte reicht SQLite3 vollständig aus: kein separater Datenbankserver, das Schema wird automatisch angelegt. Für Standorte mit vielen Hosts empfiehlt sich zabbix-proxy-mysql. PostgreSQL ist die richtige Wahl, wenn bereits eine PostgreSQL-Infrastruktur betrieben wird.
Wie lange werden Daten bei einem Server-Ausfall gepuffert?
Das steuert der Parameter ProxyOfflineBuffer (Standard: 1 Stunde). Daten, die älter sind als dieser Wert, gehen verloren. Für einen 12-stündigen Puffer den Wert auf 12 setzen und sicherstellen, dass genug Speicherplatz für die anfallenden Datenpunkte vorhanden ist.
Muss ich den Proxy-Dienst neu starten, wenn ich im Frontend neue Hosts zuweise?
Nein, aber der aktive Proxy holt sich die neue Konfiguration erst beim nächsten ProxyConfigFrequency-Intervall. Mit dem Standard von 3600 Sekunden kann das bis zu einer Stunde dauern. Wert reduzieren oder den Proxy-Dienst einmalig neu starten, um den Abruf sofort auszulösen.
Kann ein Proxy Trigger auswerten und Alerts versenden?
Nein. Ein Proxy sammelt ausschließlich Monitoring-Daten und leitet sie an den Server weiter. Trigger-Auswertung, Event-Verarbeitung und Alarmierung finden ausnahmslos auf dem Zabbix-Server statt. Ein Proxy verringert also die Last auf dem Server-Netzwerk, nicht auf dem Server-Prozessor.
Was sind Proxy-Gruppen (ab Zabbix 7.0)?
Ab Zabbix 7.0 lassen sich mehrere Proxys zu einem logischen Pool zusammenfassen. Der Server verteilt Hosts automatisch und verschiebt sie bei Proxy-Ausfall auf einen funktionierenden Proxy der Gruppe – ohne manuellen Eingriff. Aktive Agenten in einer Proxy-Gruppe müssen alle Proxy-Adressen per Semikolon in ServerActive eintragen; Komma-Trennung führt zu Datenduplikaten.
Fazit
Ein Zabbix-Proxy ist mit wenigen APT-Befehlen einsatzbereit und zahlt sich besonders bei verteilten Umgebungen schnell aus: Monitoring-Daten werden lokal gepuffert, der Zabbix-Server bleibt von direkten Agent-Verbindungen aus entfernten Standorten entlastet, und kurze WAN-Ausfälle hinterlassen keine Datenlücken – sofern ProxyOfflineBuffer großzügig genug dimensioniert ist. Für die meisten KMU-Szenarien sind SQLite3 und der aktive Modus die unkomplizierteste Kombination: kein zweiter Datenbankserver, keine eingehende Firewall-Regel. Wer bereits einen laufenden Zabbix-Server betreibt, kann diesen Proxy in unter 30 Minuten produktiv schalten.
Weiterführende Anleitungen und Quellen
- Zabbix-Server aufsetzen und ersten Host überwachen – der Ausgangspunkt, bevor der Proxy sinnvoll ist
- Prometheus node_exporter nativ als systemd-Dienst betreiben – alternatives Monitoring-Konzept ohne Proxy-Architektur
- Prometheus Alerts an Telegram und Discord senden: Alertmanager konfigurieren
- VPS absichern und härten: UFW, SSH-Keys und Fail2Ban – relevant, wenn der Proxy auf einem öffentlichen Server läuft
- Zabbix-Dokumentation: Distributed Monitoring – Proxies
- Zabbix-Dokumentation: zabbix_proxy.conf Konfigurationsreferenz
- Zabbix-Blog: Data Buffering in Zabbix Proxy
- Zabbix-Blog: Proxy Load Balancing in Zabbix 7.0