Installation aus Containern
Überblick
Dieser Abschnitt beschreibt, wie Zabbix mit Docker oder Docker Compose bereitgestellt wird.
Zabbix stellt offiziell Folgendes bereit:
- Separate Docker-Images für jede Zabbix-Komponente, die als portable und eigenständige Container ausgeführt werden.
- Compose-Dateien zum Definieren und Ausführen von Zabbix-Komponenten mit mehreren Containern in Docker.
Seit Zabbix 6.0 müssen deterministische Auslöser während der Installation erstellt werden.
Wenn die binäre Protokollierung für MySQL/MariaDB aktiviert ist, sind dafür Superuser-Rechte oder das Setzen der Variablen/des Konfigurationsparameters log_bin_trust_function_creators = 1 erforderlich.
Anweisungen zum Setzen der Variablen finden Sie unter Database creation scripts.
Beachten Sie, dass die Variable bei Ausführung über eine Konsole nur temporär gesetzt wird und beim Neustart eines Docker verworfen wird.
Lassen Sie in diesem Fall Ihren SQL-Dienst weiterlaufen und stoppen Sie nur den Dienst zabbix-server, indem Sie 'docker compose down zabbix-server' und anschließend 'docker compose up -d zabbix-server' ausführen.
Alternativ können Sie diese Variable in der Konfigurationsdatei setzen.
Quelldateien
Die Dockerfile-Quellen werden im Zabbix-offiziellen Repository auf GitHub gespeichert. Dort können Sie die neuesten Dateiänderungen verfolgen oder das Projekt forken, um Ihre eigenen Images zu erstellen.
Docker
Zabbix stellt Images bereit, die auf einer Vielzahl von Basis-OS-Images basieren. Um die Liste der unterstützten Basis-Betriebssystem-Images für eine bestimmte Zabbix-Komponente zu erhalten, siehe die Beschreibung der Komponente in Docker Hub. Alle Zabbix-Images sind so konfiguriert, dass die neuesten Images neu erstellt werden, wenn Basis-Images aktualisiert werden.
Installation
Um ein Zabbix-Komponenten-Image zu erhalten, führen Sie Folgendes aus:
docker pull zabbix/zabbix-server-mysql
Ersetzen Sie zabbix/zabbix-server-mysql durch den Namen des erforderlichen Docker-Repositorys.
Dieser Befehl lädt die neueste stabile Version der Zabbix-Komponente herunter, die auf dem Alpine-Linux-OS basiert. Sie können Tags an den Repository-Namen anhängen, um ein Image zu erhalten, das auf einem anderen Betriebssystem basiert oder einer bestimmten Zabbix-Haupt- oder Nebenversion entspricht.
Die folgenden Repositorys sind in Docker Hub verfügbar:
| Komponente | Docker-Repository | |
|---|---|---|
| Zabbix Agent | zabbix/zabbix-agent | |
| Zabbix Server | ||
| mit MySQL-Unterstützung | zabbix/zabbix-server-mysql | |
| mit PostgreSQL-Unterstützung | zabbix/zabbix-server-pgsql | |
| Zabbix-Weboberfläche | ||
| basierend auf dem Apache2-Webserver mit MySQL-Unterstützung | zabbix/zabbix-web-apache-mysql | |
| basierend auf dem Apache2-Webserver mit PostgreSQL-Unterstützung | zabbix/zabbix-web-apache-pgsql | |
| basierend auf dem Nginx-Webserver mit MySQL-Unterstützung | zabbix/zabbix-web-nginx-mysql | |
| basierend auf dem Nginx-Webserver mit PostgreSQL-Unterstützung | zabbix/zabbix-web-nginx-pgsql | |
| Zabbix Proxy | ||
| mit SQLite3-Unterstützung | zabbix/zabbix-proxy-sqlite3 | |
| mit MySQL-Unterstützung | zabbix/zabbix-proxy-mysql | |
| Zabbix Java gateway | zabbix/zabbix-java-gateway | |
Die Unterstützung für SNMP-Traps wird in einem separaten Repository zabbix/zabbix-snmptraps bereitgestellt. Es kann mit Zabbix Server und Zabbix Proxy verknüpft werden.
Tags
Offizielle Zabbix-Komponenten-Images können die folgenden Tags enthalten:
| Tag | Beschreibung | Beispiel |
|---|---|---|
| latest | Die neueste stabile Version einer Zabbix-Komponente basierend auf einem Alpine-Linux-Image. | zabbix-agent:latest |
| <OS>-trunk | Der neueste Nightly-Build der Zabbix-Version, die derzeit auf einem bestimmten Betriebssystem entwickelt wird. <OS> - das Basisbetriebssystem. Unterstützte Werte: alpine - Alpine Linux; ltsc2019 - Windows 10 LTSC 2019 (nur Agent); ol - Oracle Linux; ltsc2022 - Windows 11 LTSC 2022 (nur Agent); ubuntu - Ubuntu |
zabbix-agent:ubuntu-trunk |
| <OS>-latest | Die neueste stabile Version einer Zabbix-Komponente auf einem bestimmten Betriebssystem. <OS> - das Basisbetriebssystem. Unterstützte Werte: alpine - Alpine Linux; ltsc2019 - Windows 10 LTSC 2019 (nur Agent); ol - Oracle Linux; ltsc2022 - Windows 11 LTSC 2022 (nur Agent); ubuntu - Ubuntu |
zabbix-agent:ol-latest |
| <OS>-X.X-latest | Die neueste Nebenversion einer Zabbix-Komponente einer bestimmten Hauptversion und eines bestimmten Betriebssystems. <OS> - das Basisbetriebssystem. Unterstützte Werte: alpine - Alpine Linux; ltsc2019 - Windows 10 LTSC 2019 (nur Agent); ol - Oracle Linux; ltsc2022 - Windows 11 LTSC 2022 (nur Agent); ubuntu - Ubuntu X.X - die Zabbix-Hauptversion (d. h. 6.0, 7.4, 8.0). |
zabbix-agent:alpine-8.0-latest |
| <OS>-X.X.* | Die spezifische Nebenversion einer Zabbix-Komponente einer bestimmten Hauptversion und eines bestimmten Betriebssystems. <OS> - das Basisbetriebssystem. Unterstützte Werte: alpine - Alpine Linux; ltsc2019 - Windows 10 LTSC 2019 (nur Agent); ol - Oracle Linux; ltsc2022 - Windows 11 LTSC 2022 (nur Agent); ubuntu - Ubuntu X.X - die Zabbix-Hauptversion (d. h. 6.0, 7.4, 8.0). * - die Zabbix-Nebenversion |
zabbix-agent:alpine-8.0.1 |
Erstkonfiguration
Nach dem Herunterladen der Images starten Sie die Container, indem Sie den Befehl docker run ausführen, gefolgt von zusätzlichen Argumenten zur Angabe der erforderlichen Umgebungsvariablen und/oder Mount-Punkte.
Einige Konfigurationsbeispiele werden unten bereitgestellt.
Um die Kommunikation zwischen Zabbix-Komponenten zu ermöglichen, werden einige Ports für einen Host-Rechner freigegeben, z. B. 10051/TCP für den Zabbix Server (trapper), 10050/TCP für den Zabbix Agent, 162/UDP für SNMP-Traps und 80/TCP für die Zabbix-Weboberfläche. Eine vollständige Liste der von Zabbix-Komponenten standardmäßig verwendeten Ports finden Sie auf der Seite Requirements. Für Zabbix Server und Agent kann der Standardport durch Setzen der Umgebungsvariablen ZBX_LISTENPORT environment variable geändert werden.
Umgebungsvariablen
Alle Images der Zabbix-Komponenten stellen Umgebungsvariablen zur Steuerung der Konfiguration bereit. Unterstützte Umgebungsvariablen sind im Komponenten-Repository aufgeführt.
Diese Umgebungsvariablen sind Optionen aus den Zabbix-Konfigurationsdateien, jedoch mit einer anderen Benennungsmethode.
Zum Beispiel entspricht ZBX_LOGSLOWQUERIES dem Wert LogSlowQueries aus den Konfigurationsdateien von Zabbix Server oder Zabbix Proxy.
Einige Konfigurationsoptionen (z. B. PIDFile und LogType) können nicht geändert werden.
Die folgenden Umgebungsvariablen sind spezifisch für Docker-Komponenten und existieren nicht in den Zabbix-Konfigurationsdateien:
| Variable | Komponenten | Standardwert | Beschreibung |
|---|---|---|---|
DB_SERVER_HOST |
Server Proxy Weboberfläche |
mysql-server für MYSQL postgres-server für PostgreSQL |
IP- oder DNS-Name des MySQL- oder PostgreSQL-Servers. |
DB_SERVER_PORT |
Server Proxy Weboberfläche |
3306 für MYSQL 5432 für PostgreSQL |
Port des MySQL- oder PostgreSQL-Servers. |
MYSQL_USER |
Server Proxy Weboberfläche |
zabbix |
MySQL-Datenbankbenutzer. |
MYSQL_PASSWORD |
Server Proxy Weboberfläche |
zabbix |
MySQL-Datenbankpasswort. |
MYSQL_DATABASE |
Server Proxy Weboberfläche |
zabbix für Zabbix-Server zabbix_proxy für Zabbix-Proxy |
Name der Zabbix-Datenbank. |
POSTGRES_USER |
Server Weboberfläche |
zabbix |
PostgreSQL-Datenbankbenutzer. |
POSTGRES_PASSWORD |
Server Weboberfläche |
zabbix |
PostgreSQL-Datenbankpasswort. |
POSTGRES_DB |
Server Weboberfläche |
zabbix für Zabbix-Server zabbix_proxy für Zabbix-Proxy |
Name der Zabbix-Datenbank. |
PHP_TZ |
Weboberfläche | Europe/Riga |
Zeitzone im PHP-Format. Eine vollständige Liste der unterstützten Zeitzonen ist auf php.net verfügbar. |
ZBX_SERVER_NAME |
Weboberfläche | Zabbix Docker |
Sichtbarer Name der Zabbix-Installation unterhalb des Zabbix-Logos im vertikalen Menü der Weboberfläche. |
ZBX_JAVAGATEWAY_ENABLE |
Server Proxy |
false |
Aktiviert die Kommunikation mit dem Zabbix Java gateway, um Java-bezogene Prüfungen zu erfassen. |
ZBX_ENABLE_SNMP_TRAPS |
Server Proxy |
false |
Aktiviert die SNMP-Trap-Funktion. Sie erfordert eine zabbix-snmptraps-Instanz und das gemeinsam genutzte Volume /var/lib/zabbix/snmptraps für den Zabbix-Server oder Zabbix-Proxy. |
Volumes
Die Images ermöglichen das Einhängen von Volumes unter Verwendung der folgenden Einhängepunkte:
| Volume | Beschreibung | |
|---|---|---|
| Zabbix Agent | ||
| /etc/zabbix/zabbix_agentd.d | Das Volume ermöglicht das Einbinden von *.conf-Dateien und die Erweiterung des Zabbix Agent mithilfe der UserParameter-Funktion |
|
| /var/lib/zabbix/modules | Das Volume ermöglicht das Laden zusätzlicher Module und die Erweiterung des Zabbix Agent mithilfe der Funktion LoadModule | |
| /var/lib/zabbix/enc | Das Volume wird zum Speichern TLS-bezogener Dateien verwendet. Diese Dateinamen werden mithilfe der Umgebungsvariablen ZBX_TLSCAFILE, ZBX_TLSCRLFILE, ZBX_TLSKEY_FILE und ZBX_TLSPSKFILE angegeben |
|
| Zabbix Server | ||
| /usr/lib/zabbix/alertscripts | Das Volume wird für benutzerdefinierte Alarmierungsskripte verwendet. Es ist der Parameter AlertScriptsPath in zabbix_server.conf |
|
| /usr/lib/zabbix/externalscripts | Das Volume wird von externen Prüfungen verwendet. Es ist der Parameter ExternalScripts in zabbix_server.conf |
|
| /var/lib/zabbix/modules | Das Volume ermöglicht das Laden zusätzlicher Module und die Erweiterung des Zabbix Server mithilfe der Funktion LoadModule | |
| /var/lib/zabbix/enc | Das Volume wird zum Speichern TLS-bezogener Dateien verwendet. Diese Dateinamen werden mithilfe der Umgebungsvariablen ZBX_TLSCAFILE, ZBX_TLSCRLFILE, ZBX_TLSKEY_FILE und ZBX_TLSPSKFILE angegeben |
|
| /var/lib/zabbix/ssl/certs | Das Volume wird als Speicherort für SSL-Clientzertifikatsdateien zur Client-Authentifizierung verwendet. Es ist der Parameter SSLCertLocation in zabbix_server.conf |
|
| /var/lib/zabbix/ssl/keys | Das Volume wird als Speicherort für SSL-Dateien mit privaten Schlüsseln zur Client-Authentifizierung verwendet. Es ist der Parameter SSLKeyLocation in zabbix_server.conf |
|
| /var/lib/zabbix/ssl/ssl_ca | Das Volume wird als Speicherort für Dateien von Zertifizierungsstellen (CA) zur Verifizierung von SSL-Serverzertifikaten verwendet. Es ist der Parameter SSLCALocation in zabbix_server.conf |
|
| /var/lib/zabbix/snmptraps | Das Volume wird als Speicherort für die Datei snmptraps.log verwendet. Es kann vom Container zabbix-snmptraps gemeinsam genutzt und beim Erstellen einer neuen Instanz von Zabbix Server mithilfe der Docker-Option volumes_from übernommen werden. Die Funktion zur Verarbeitung von SNMP-Traps kann durch Verwendung eines gemeinsam genutzten Volumes und Setzen der Umgebungsvariablen ZBX_ENABLE_SNMP_TRAPS auf 'true' aktiviert werden |
|
| /var/lib/zabbix/mibs | Das Volume ermöglicht das Hinzufügen neuer MIB-Dateien. Unterverzeichnisse werden nicht unterstützt, alle MIBs müssen in /var/lib/zabbix/mibs abgelegt werden |
|
| Zabbix Proxy | ||
| /usr/lib/zabbix/externalscripts | Das Volume wird von externen Prüfungen verwendet. Es ist der Parameter ExternalScripts in zabbix_proxy.conf |
|
| /var/lib/zabbix/db_data/ | Das Volume ermöglicht das Speichern von Datenbankdateien auf externen Geräten. Wird nur für Zabbix Proxy mit SQLite3 unterstützt | |
| /var/lib/zabbix/modules | Das Volume ermöglicht das Laden zusätzlicher Module und die Erweiterung des Zabbix Server mithilfe der Funktion LoadModule | |
| /var/lib/zabbix/enc | Das Volume wird zum Speichern TLS-bezogener Dateien verwendet. Diese Dateinamen werden mithilfe der Umgebungsvariablen ZBX_TLSCAFILE, ZBX_TLSCRLFILE, ZBX_TLSKEY_FILE und ZBX_TLSPSKFILE angegeben |
|
| /var/lib/zabbix/ssl/certs | Das Volume wird als Speicherort für SSL-Clientzertifikatsdateien zur Client-Authentifizierung verwendet. Es ist der Parameter SSLCertLocation in zabbix_proxy.conf |
|
| /var/lib/zabbix/ssl/keys | Das Volume wird als Speicherort für SSL-Dateien mit privaten Schlüsseln zur Client-Authentifizierung verwendet. Es ist der Parameter SSLKeyLocation in zabbix_proxy.conf |
|
| /var/lib/zabbix/ssl/ssl_ca | Das Volume wird als Speicherort für Dateien von Zertifizierungsstellen (CA) zur Verifizierung von SSL-Serverzertifikaten verwendet. Es ist der Parameter SSLCALocation in zabbix_proxy.conf |
|
| /var/lib/zabbix/snmptraps | Das Volume wird als Speicherort für die Datei snmptraps.log verwendet. Es kann vom Container zabbix-snmptraps gemeinsam genutzt und beim Erstellen einer neuen Instanz von Zabbix Server mithilfe der Docker-Option volumes_from übernommen werden. Die Funktion zur Verarbeitung von SNMP-Traps kann durch Verwendung eines gemeinsam genutzten Volumes und Setzen der Umgebungsvariablen ZBX_ENABLE_SNMP_TRAPS auf 'true' aktiviert werden |
|
| /var/lib/zabbix/mibs | Das Volume ermöglicht das Hinzufügen neuer MIB-Dateien. Unterverzeichnisse werden nicht unterstützt, alle MIBs müssen in /var/lib/zabbix/mibs abgelegt werden |
|
| Zabbix-Weboberfläche basierend auf Apache2-Webserver | ||
| /etc/ssl/apache2 | Das Volume ermöglicht die Aktivierung von HTTPS für die Zabbix-Weboberfläche. Das Volume muss die beiden für Apache2-SSL-Verbindungen vorbereiteten Dateien ssl.crt und ssl.key enthalten |
|
| Zabbix-Weboberfläche basierend auf Nginx-Webserver | ||
| /etc/ssl/nginx | Das Volume ermöglicht die Aktivierung von HTTPS für die Zabbix-Weboberfläche. Das Volume muss die für Nginx-SSL-Verbindungen vorbereiteten Dateien ssl.crt, ssl.key und dhparam.pem enthalten |
|
| Zabbix snmptraps | ||
| /var/lib/zabbix/snmptraps | Das Volume enthält die Protokolldatei snmptraps.log mit den empfangenen SNMP-Traps |
|
| /var/lib/zabbix/mibs | Das Volume ermöglicht das Hinzufügen neuer MIB-Dateien. Unterverzeichnisse werden nicht unterstützt, alle MIBs müssen in /var/lib/zabbix/mibs abgelegt werden |
|
Weitere Informationen finden Sie in den offiziellen Zabbix-Repositories auf Docker Hub.
Beispiele
Beispiel 1
Das Beispiel zeigt, wie Zabbix Server mit Unterstützung für eine MySQL-Datenbank, einer auf dem Nginx-Webserver basierenden Zabbix-Weboberfläche und dem Zabbix Java gateway ausgeführt wird.
1. Erstellen Sie ein Netzwerk, das für Zabbix-Komponenten-Container vorgesehen ist:
docker network create --subnet 172.20.0.0/16 --ip-range 172.20.240.0/20 zabbix-net
2. Starten Sie eine leere MySQL-Server-Instanz:
docker run --name mysql-server -t \
-e MYSQL_DATABASE="zabbix" \
-e MYSQL_USER="zabbix" \
-e MYSQL_PASSWORD="zabbix_pwd" \
-e MYSQL_ROOT_PASSWORD="root_pwd" \
--network=zabbix-net \
--restart unless-stopped \
-d mysql:8.4-oracle \
--character-set-server=utf8 --collation-server=utf8_bin \
--default-authentication-plugin=caching_sha2_password
3. Starten Sie eine Zabbix Java gateway-Instanz:
docker run --name zabbix-java-gateway -t \
--network=zabbix-net \
--restart unless-stopped \
-d zabbix/zabbix-java-gateway:alpine-8.0-latest
4. Starten Sie eine Zabbix-Server-Instanz und verknüpfen Sie diese mit der erstellten MySQL-Server-Instanz:
docker run --name zabbix-server-mysql -t \
-e DB_SERVER_HOST="mysql-server" \
-e MYSQL_DATABASE="zabbix" \
-e MYSQL_USER="zabbix" \
-e MYSQL_PASSWORD="zabbix_pwd" \
-e MYSQL_ROOT_PASSWORD="root_pwd" \
-e ZBX_JAVAGATEWAY="zabbix-java-gateway" \
--network=zabbix-net \
-p 10051:10051 \
--restart unless-stopped \
-d zabbix/zabbix-server-mysql:alpine-8.0-latest
5. Starten Sie die Zabbix-Weboberfläche und verknüpfen Sie diese mit den erstellten MySQL-Server- und Zabbix-Server-Instanzen:
docker run --name zabbix-web-nginx-mysql -t \
-e ZBX_SERVER_HOST="zabbix-server-mysql" \
-e DB_SERVER_HOST="mysql-server" \
-e MYSQL_DATABASE="zabbix" \
-e MYSQL_USER="zabbix" \
-e MYSQL_PASSWORD="zabbix_pwd" \
-e MYSQL_ROOT_PASSWORD="root_pwd" \
--network=zabbix-net \
-p 80:8080 \
--restart unless-stopped \
-d zabbix/zabbix-web-nginx-mysql:alpine-8.0-latest
Beispiel 2
Das Beispiel zeigt, wie Zabbix Server mit Unterstützung für eine PostgreSQL-Datenbank, einer auf dem Nginx-Webserver basierenden Zabbix-Weboberfläche und der SNMP-Trap-Funktion ausgeführt wird.
1. Erstellen Sie ein Netzwerk, das für Zabbix-Komponenten-Container vorgesehen ist:
docker network create --subnet 172.20.0.0/16 --ip-range 172.20.240.0/20 zabbix-net
2. Starten Sie eine leere PostgreSQL-Server-Instanz:
docker run --name postgres-server -t \
-e POSTGRES_USER="zabbix" \
-e POSTGRES_PASSWORD="zabbix_pwd" \
-e POSTGRES_DB="zabbix" \
--network=zabbix-net \
--restart unless-stopped \
-d postgres:latest
3. Starten Sie eine Zabbix-snmptraps-Instanz:
docker run --name zabbix-snmptraps -t \
-v /zbx_instance/snmptraps:/var/lib/zabbix/snmptraps:rw \
-v /var/lib/zabbix/mibs:/usr/share/snmp/mibs:ro \
--network=zabbix-net \
-p 162:1162/udp \
--restart unless-stopped \
-d zabbix/zabbix-snmptraps:alpine-8.0-latest
4. Starten Sie eine Zabbix-Server-Instanz und verknüpfen Sie diese mit der erstellten PostgreSQL-Server-Instanz:
docker run --name zabbix-server-pgsql -t \
-e DB_SERVER_HOST="postgres-server" \
-e POSTGRES_USER="zabbix" \
-e POSTGRES_PASSWORD="zabbix_pwd" \
-e POSTGRES_DB="zabbix" \
-e ZBX_ENABLE_SNMP_TRAPS="true" \
--network=zabbix-net \
-p 10051:10051 \
--volumes-from zabbix-snmptraps \
--restart unless-stopped \
-d zabbix/zabbix-server-pgsql:alpine-8.0-latest
5. Starten Sie die Zabbix-Weboberfläche und verknüpfen Sie diese mit den erstellten PostgreSQL-Server- und Zabbix-Server-Instanzen:
docker run --name zabbix-web-nginx-pgsql -t \
-e ZBX_SERVER_HOST="zabbix-server-pgsql" \
-e DB_SERVER_HOST="postgres-server" \
-e POSTGRES_USER="zabbix" \
-e POSTGRES_PASSWORD="zabbix_pwd" \
-e POSTGRES_DB="zabbix" \
--network=zabbix-net \
-p 443:8443 \
-p 80:8080 \
-v /etc/ssl/nginx:/etc/ssl/nginx:ro \
--restart unless-stopped \
-d zabbix/zabbix-web-nginx-pgsql:alpine-8.0-latest
Beispiel 3
Das Beispiel zeigt, wie Zabbix Server mit Unterstützung für eine MySQL-Datenbank, einer auf dem Nginx-Webserver basierenden Zabbix-Weboberfläche und dem Zabbix Java gateway unter Verwendung von podman auf Red Hat 8 ausgeführt wird.
1. Erstellen Sie einen neuen Pod mit dem Namen zabbix und freigegebenen Ports (Weboberfläche, Zabbix-Server-Trapper):
podman pod create --name zabbix -p 80:8080 -p 10051:10051
2. (optional) Starten Sie den Zabbix-Agent-Container im Pod zabbix:
podman run --name zabbix-agent \
-e ZBX_SERVER_HOST="127.0.0.1,localhost" \
--restart=always \
--pod=zabbix \
-d registry.connect.redhat.com/zabbix/zabbix-agent-74:latest
3. Erstellen Sie auf dem Host das Verzeichnis ./mysql/ und starten Sie Oracle MySQL Server 8.4:
podman run --name mysql-server -t \
-e MYSQL_DATABASE="zabbix" \
-e MYSQL_USER="zabbix" \
-e MYSQL_PASSWORD="zabbix_pwd" \
-e MYSQL_ROOT_PASSWORD="root_pwd" \
-v ./mysql/:/var/lib/mysql/:Z \
--restart=always \
--pod=zabbix \
-d mysql:8.4 \
--character-set-server=utf8 --collation-server=utf8_bin \
--default-authentication-plugin=caching_sha2_password
4. Starten Sie den Zabbix-Server-Container:
podman run --name zabbix-server-mysql -t \
-e DB_SERVER_HOST="127.0.0.1" \
-e MYSQL_DATABASE="zabbix" \
-e MYSQL_USER="zabbix" \
-e MYSQL_PASSWORD="zabbix_pwd" \
-e MYSQL_ROOT_PASSWORD="root_pwd" \
-e ZBX_JAVAGATEWAY="127.0.0.1" \
--restart=always \
--pod=zabbix \
-d registry.connect.redhat.com/zabbix/zabbix-server-mysql-74
5. Starten Sie den Zabbix Java Gateway-Container:
podman run --name zabbix-java-gateway -t \
--restart=always \
--pod=zabbix \
-d registry.connect.redhat.com/zabbix/zabbix-java-gateway-74
6. Starten Sie den Zabbix-Weboberflächen-Container:
podman run --name zabbix-web-mysql -t \
-e ZBX_SERVER_HOST="127.0.0.1" \
-e DB_SERVER_HOST="127.0.0.1" \
-e MYSQL_DATABASE="zabbix" \
-e MYSQL_USER="zabbix" \
-e MYSQL_PASSWORD="zabbix_pwd" \
-e MYSQL_ROOT_PASSWORD="root_pwd" \
--restart=always \
--pod=zabbix \
-d registry.connect.redhat.com/zabbix/zabbix-web-mysql-74
Der Pod zabbix stellt Port 80/TCP (HTTP) des Containers zabbix-web-mysql über dessen 8080/TCP für den Host bereit.
Docker Compose
Alternativ kann Zabbix mit dem Docker-Compose-Plugin installiert werden. Compose-Dateien zum Definieren und Ausführen von Zabbix-Komponenten mit mehreren Containern sind im offiziellen Zabbix-Docker-Repository auf GitHub verfügbar.
Offizielle Zabbix-Compose-Dateien unterstützen Version 3 von Docker Compose.
Diese Compose-Dateien werden als Beispiele hinzugefügt; sie sind überladen. Sie enthalten zum Beispiel Proxys mit Unterstützung sowohl für MySQL als auch für SQLite3.
Um die von Zabbix bereitgestellten Docker-Compose-Dateien zu erhalten, klonen Sie das Repository:
git clone https://github.com/zabbix/zabbix-docker.git
Wechseln Sie zur erforderlichen Version:
git checkout 8.0
Konfigurieren Sie die Compose-Dateien und erstellen und starten Sie die Container:
docker compose -f ./docker-compose_v3_alpine_mysql_latest.yaml up
Ersetzen Sie docker-compose_v3_alpine_mysql_latest.yaml im obigen Befehl durch die erforderliche Konfigurationsdatei.
Die folgenden Optionen sind verfügbar:
| Dateiname | Beschreibung |
|---|---|
docker-compose_v3_alpine_mysql_latest.yaml |
Die Compose-Datei führt die neueste Version der Zabbix-8.0-Komponenten unter Alpine Linux mit Unterstützung für die MySQL-Datenbank aus. |
docker-compose_v3_alpine_mysql_local.yaml |
Die Compose-Datei erstellt die neueste Version von Zabbix 8.0 lokal und führt Zabbix-Komponenten unter Alpine Linux mit Unterstützung für die MySQL-Datenbank aus. |
docker-compose_v3_alpine_pgsql_latest.yaml |
Die Compose-Datei führt die neueste Version der Zabbix-8.0-Komponenten unter Alpine Linux mit Unterstützung für die PostgreSQL-Datenbank aus. |
docker-compose_v3_alpine_pgsql_local.yaml |
Die Compose-Datei erstellt die neueste Version von Zabbix 8.0 lokal und führt Zabbix-Komponenten unter Alpine Linux mit Unterstützung für die PostgreSQL-Datenbank aus. |
docker-compose_v3_ol_mysql_latest.yaml |
Die Compose-Datei führt die neueste Version der Zabbix-8.0-Komponenten unter Oracle Linux mit Unterstützung für die MySQL-Datenbank aus. |
docker-compose_v3_ol_mysql_local.yaml |
Die Compose-Datei erstellt die neueste Version von Zabbix 8.0 lokal und führt Zabbix-Komponenten unter Oracle Linux mit Unterstützung für die MySQL-Datenbank aus. |
docker-compose_v3_ol_pgsql_latest.yaml |
Die Compose-Datei führt die neueste Version der Zabbix-8.0-Komponenten unter Oracle Linux mit Unterstützung für die PostgreSQL-Datenbank aus. |
docker-compose_v3_ol_pgsql_local.yaml |
Die Compose-Datei erstellt die neueste Version von Zabbix 8.0 lokal und führt Zabbix-Komponenten unter Oracle Linux mit Unterstützung für die PostgreSQL-Datenbank aus. |
docker-compose_v3_ubuntu_mysql_latest.yaml |
Die Compose-Datei führt die neueste Version der Zabbix-8.0-Komponenten unter Ubuntu 24.04 (noble) mit Unterstützung für die MySQL-Datenbank aus. |
docker-compose_v3_ubuntu_mysql_local.yaml |
Die Compose-Datei erstellt die neueste Version von Zabbix 8.0 lokal und führt Zabbix-Komponenten unter Ubuntu 24.04 (noble) mit Unterstützung für die MySQL-Datenbank aus. |
docker-compose_v3_ubuntu_pgsql_latest.yaml |
Die Compose-Datei führt die neueste Version der Zabbix-8.0-Komponenten unter Ubuntu 24.04 (noble) mit Unterstützung für die PostgreSQL-Datenbank aus. |
docker-compose_v3_ubuntu_pgsql_local.yaml |
Die Compose-Datei erstellt die neueste Version von Zabbix 8.0 lokal und führt Zabbix-Komponenten unter Ubuntu 24.04 (noble) mit Unterstützung für die PostgreSQL-Datenbank aus. |
Speicher
Compose-Dateien sind so konfiguriert, dass sie lokalen Speicher auf einem Host-Rechner unterstützen.
Docker Compose erstellt ein Verzeichnis zbx_env in dem Ordner mit der Compose-Datei, wenn Sie Zabbix-Komponenten mit der Compose-Datei ausführen.
Das Verzeichnis enthält dieselbe Struktur wie im Abschnitt Volumes beschrieben sowie ein Verzeichnis für die Datenbankspeicherung.
Es gibt außerdem Volumes im Nur-Lese-Modus für die Dateien /etc/localtime und /etc/timezone.
Umgebungsvariablen
Die Variablendateien haben die folgende Namensstruktur: .env_<Typ der Komponente> und befinden sich im Verzeichnis env_vars directory.
Siehe Umgebungsvariablen für Details zur Benennung der Variablen und zur verfügbaren Auswahl.
Beispiele
Beispiel 1
git checkout 8.0
docker compose -f ./docker-compose_v3_alpine_mysql_latest.yaml up -d
Der Befehl lädt die neuesten Zabbix-8.0-Images für jede Zabbix-Komponente herunter und startet sie im Detached-Modus.
Vergessen Sie nicht, die Dateien .env_<type of component> aus dem offiziellen Zabbix-Repository auf github.com zusammen mit den Compose-Dateien herunterzuladen.
Beispiel 2
git checkout 8.0
docker compose -f ./docker-compose_v3_ubuntu_mysql_local.yaml up -d
Der Befehl lädt das Basis-Image Ubuntu 24.04 (noble) herunter, erstellt dann die Zabbix-8.0-Komponenten lokal und startet sie im Detached-Modus.