Zabbix-Proxy nativ auf Ubuntu aufsetzen: APT-Installation, aktiver und passiver Modus
Einen Zabbix-Proxy 7.0 LTS 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, mit Offline-Puffer und PSK.
Geprüft am 30.09.2026 · für Zabbix Proxy 7.0 LTS
WerbelinksMit * markierte Links sind Werbelinks: Bei einem Kauf erhalten wir eine Provision, der Preis bleibt gleich. Als Amazon-Partner verdiene ich an qualifizierten Verkäufen. Mehr dazu

Überwachen Sie mehrere Standorte, DMZ-Segmente oder langsame WAN-Strecken mit Zabbix, muss der zentrale Server sonst jeden Host direkt erreichen, und jede Verbindungsunterbrechung hinterlässt Lücken in den Metriken. Ein Zabbix-Proxy sammelt die Daten lokal, puffert sie und leitet sie an den Server weiter. Diese Anleitung zeigt, wie Sie einen Proxy der LTS-Version Zabbix 7.0 aus dem offiziellen Repository auf Ubuntu 22.04 oder 24.04 installieren, die Datenbank wählen und den Proxy im aktiven oder passiven Modus betreiben.
Voraussetzungen
- Ubuntu 22.04 LTS oder 24.04 LTS (Minimal-Server-Installation, x86-64 oder ARM64)
- 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
- Mindestens 5 GB freier Speicher; mehr bei großem
ProxyOfflineBuffer(Standard: 1 Stunde Daten) - IP-Adresse oder FQDN des Zabbix-Servers bekannt
- Geplanter Proxy-Name (
Hostname) ; er wird mit exakt gleicher Groß- und Kleinschreibung im Frontend eingetragen - Laufender Zabbix-Server in derselben Major-Version (hier 7.0.x)
Schritt 1: Zabbix-Repository einrichten
Das Release-Paket richtet das offizielle APT-Repository für Zabbix 7.0 LTS ein und importiert den GPG-Schlüssel. Verwenden Sie die Major-Version Ihres Zabbix-Servers; die Version 7.2 aus älteren Fassungen dieser Anleitung erhält keine Updates mehr.
# Ubuntu 22.04 (Jammy)
wget https://repo.zabbix.com/zabbix/7.0/ubuntu/pool/main/z/zabbix-release/zabbix-release_latest_7.0+ubuntu22.04_all.deb
sudo dpkg -i zabbix-release_latest_7.0+ubuntu22.04_all.deb
sudo apt update
# Ubuntu 24.04 (Noble) – stattdessen:
# 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 updateVerifizieren: apt-cache policy zabbix-proxy-sqlite3 zeigt eine Kandidaten-Version 7.0.x aus repo.zabbix.com.
Schritt 2: Proxy-Paket und Datenbank installieren
Das passende Paket hängt vom Einsatzumfeld ab:
| 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)
Ohne separaten Datenbankserver und ohne Schema-Import:
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. Importieren Sie das Schema nicht manuell.
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 'IHR_DB_PASSWORT';"
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'IHR_DB_PASSWORT' zabbix_proxyVerwenden Sie nie die Datenbank des Zabbix-Servers mit. Laufen Proxy und Server auf demselben Host, nutzen Sie unterschiedliche Datenbanknamen (z. B. zabbix für den Server, zabbix_proxy für den Proxy).
Verifizieren: Bei SQLite3 zeigt dpkg -l zabbix-proxy-sqlite3 den Status ii. Bei MariaDB listet sudo mysql -uzabbix -p'IHR_DB_PASSWORT' -e "SHOW TABLES;" zabbix_proxy mehrere Tabellen (u. a. hosts, items).
Schritt 3: zabbix_proxy.conf konfigurieren
Die zentrale Konfigurationsdatei liegt unter /etc/zabbix/zabbix_proxy.conf. Die folgenden Blöcke zeigen Beispielkonfigurationen für beide Modi; Sie ändern die entsprechenden Zeilen in der vorhandenen Datei.
Aktiver Proxy – ProxyMode=0 (empfohlen für DMZ und Remote-Standorte)
Der Proxy baut selbst eine Verbindung zum Server auf. In der Firewall genügt eine ausgehende Regel; das passt für NAT-Umgebungen und DMZ-Segmente.
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 (statt SQLite3 einkommentieren):
# DBName=zabbix_proxy
# DBUser=zabbix
# DBPassword=IHR_DB_PASSWORT
ProxyLocalBuffer=0 # 0 = synchronisierte Daten sofort verwerfen (Standard)
ProxyOfflineBuffer=12 # Stunden Puffer bei Server-Ausfall (Standard: 1!)
# ProxyConfigFrequency=10 # Konfigurationsabruf in Sekunden (Standard ab 7.0: 10)
DataSenderFrequency=1 # Daten jede Sekunde senden (Standard)
LogFile=/var/log/zabbix/zabbix_proxy.log
LogFileSize=10 # MB (Standard: 1); 0 = keine automatische Rotation
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
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 |
Verifizieren: grep -E '^(ProxyMode|Server|Hostname|DBName)=' /etc/zabbix/zabbix_proxy.conf zeigt genau je eine Zeile mit Ihren Werten.
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) erscheinen Starting Zabbix Proxy und proxy #0 started [main process]. Meldungen wie cannot connect to oder cannot send 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 statusIst ausgehender Verkehr eingeschränkt, legen Sie für einen aktiven Proxy zusätzlich eine ausgehende Regel für TCP 10051 zum Server an.
Verifizieren: Beim passiven Proxy zeigt sudo ufw status die Regel für Port 10051 von der Server-IP. Beim aktiven Proxy prüfen Sie vom Proxy aus mit nc -zv 192.168.1.10 10051, dass der Server erreichbar ist (succeeded).
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 Sekunden zeigt die Proxy-Liste im Frontend eine aktuelle „Last seen“-Zeit. Fehlt sie, prüfen Sie das Log auf dem Proxy-Host.
Aktive Agenten, die über diesen Proxy überwacht werden, tragen in zabbix_agentd.conf die Proxy-IP als ServerActive ein, nicht die Server-IP.
Optional: PSK-Verschlüsselung aktivieren
Ohne Transportverschlüsselung gehen Konfiguration und Messdaten unverschlüsselt über das Netz. PSK funktioniert ohne PKI:
# 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 starten Sie den Proxy-Dienst neu.
Verifizieren: Die Proxy-Liste zeigt weiter eine aktuelle „Last seen“-Zeit, und im Log erscheinen keine TLS-Fehler.
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. Vergleichen Sie mit grep ^Hostname /etc/zabbix/zabbix_proxy.conf.
Konfiguration kommt erst nach langer Wartezeit an
Seit Zabbix 7.0 holt ein aktiver Proxy die Konfiguration standardmäßig alle 10 Sekunden. Kommt sie deutlich später an, prüfen Sie, ob in zabbix_proxy.conf ein alter, hoher Wert für ProxyConfigFrequency oder ConfigFrequency (veraltet) gesetzt ist. Mit sudo zabbix_proxy -R config_cache_reload lösen Sie den Abruf sofort aus.
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. Passen Sie den Wert an die reale Ausfalltoleranz an (z. B. 12 oder 24 Stunden, maximal 720) und berücksichtigen Sie den Speicherplatz.
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. Verwenden Sie dann den aktiven Modus.
Versionsmismatch zwischen Proxy und Server
Die Major-Version von Proxy und Server muss übereinstimmen (z. B. beide 7.0.x); ein veralteter Proxy wird vom Server nur eingeschränkt oder gar nicht mehr bedient. 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 MySQL/MariaDB und PostgreSQL brauchen einen manuellen Import.
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. Sie benötigen nur eine ausgehende Firewall-Regel.
Welche Datenbank ist für einen Zabbix-Proxy empfehlenswert?
Für kleine bis mittlere Standorte reicht SQLite3: 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 12 Stunden setzen Sie 12 und sorgen für ausreichend Speicherplatz.
Muss ich den Proxy-Dienst neu starten, wenn ich im Frontend neue Hosts zuweise?
Nein. Der aktive Proxy holt die neue Konfiguration beim nächsten ProxyConfigFrequency-Intervall, seit Zabbix 7.0 standardmäßig nach 10 Sekunden. Den passiven Proxy versorgt der Server selbst.
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 laufen auf dem Zabbix-Server. Der Proxy entlastet den Server vor allem bei der Datenerfassung (Polling, Verbindungen), nicht bei der Auswertung.
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. 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 puffert Monitoring-Daten lokal, entlastet den Server von direkten Agent-Verbindungen entfernter Standorte und überbrückt WAN-Ausfälle, solange ProxyOfflineBuffer ausreichend dimensioniert ist. Für die meisten KMU-Szenarien sind SQLite3 und der aktive Modus die einfachste Kombination: kein zweiter Datenbankserver, keine eingehende Firewall-Regel.
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


