- 5 Installatie vanuit containers
- Overzicht
- Docker
- Docker Compose
- docker network create --subnet 172.20.0.0/16 --ip-range 172.20.240.0/20 zabbix-net
- docker run --name mysql-server -t \
- docker run --name zabbix-java-gateway -t \
- docker run --name zabbix-server-mysql -t \
- docker run --name zabbix-web-nginx-mysql -t \
- docker network create --subnet 172.20.0.0/16 --ip-range 172.20.240.0/20 zabbix-net
- docker run --name postgres-server -t \
- docker run --name zabbix-snmptraps -t \
- docker run --name zabbix-server-pgsql -t \
- docker run --name zabbix-web-nginx-pgsql -t \
5 Installatie vanuit containers
Overzicht
Dit gedeelte beschrijft hoe je Zabbix kunt implementeren met Docker of Docker Compose.
Zabbix biedt officieel:
- Afzonderlijke Docker-images voor elk Zabbix-component om te draaien als draagbare en zelfvoorzienende containers.
- Compose-bestanden om multi-container Zabbix-componenten in Docker te definiëren en uit te voeren.
::: notebelangrijk
Sinds Zabbix 6.0 moeten deterministische triggers worden aangemaakt tijdens de installatie.
Als binaire logging is ingeschakeld voor MySQL/MariaDB, zijn hiervoor supergebruikersrechten nodig of moet de variabele/configuratieparameter log_bin_trust_function_creators = 1 worden ingesteld. Raadpleeg Databasecreatie-scripts voor instructies over hoe je de variabele kunt instellen.
Merk op dat als je het vanuit een console uitvoert, de variabele slechts tijdelijk wordt ingesteld en wordt verwijderd wanneer een Docker opnieuw wordt gestart.
In dat geval houd je je SQL-service actief, stop je alleen de zabbix-server-service door 'docker compose down zabbix-server' uit te voeren en vervolgens 'docker compose up -d zabbix-server'.
Als alternatief kun je deze variabele instellen in het configuratiebestand.
:::
Bronbestanden
Docker-bestandsbronnen worden opgeslagen in het Zabbix officiële repository op GitHub, waar je de nieuwste bestandswijzigingen kunt volgen of het project kunt forkken om je eigen afbeeldingen te maken.
Docker
Zabbix biedt afbeeldingen op basis van verschillende basis-OS-afbeeldingen. Voor een lijst van ondersteunde basisbesturingssysteemafbeeldingen voor een specifiek Zabbix-component, zie de beschrijving van het component op Docker Hub. Alle Zabbix-afbeeldingen zijn geconfigureerd om de nieuwste afbeeldingen opnieuw op te bouwen als de basisafbeeldingen worden bijgewerkt.
Installatie
Om een Zabbix-componentafbeelding te krijgen, voer je het volgende uit:
docker pull zabbix/zabbix-server-mysql
Vervang zabbix/zabbix-server-mysql door de naam van het vereiste Docker-repository.
Deze opdracht zal de nieuwste stabiele versie van het Zabbix-component ophalen op basis van het Alpine Linux-besturingssysteem. Je kunt tags aan de naam van het repository toevoegen om een afbeelding te krijgen op basis van een ander besturingssysteem of van een specifieke Zabbix-hoofd- of subversie.
De volgende repositories zijn beschikbaar op Docker Hub:
| Component | Docker-repository | |
|---|---|---|
| Zabbix-agent | zabbix/zabbix-agent | |
| Zabbix-server | ||
| met MySQL-ondersteuning | zabbix/zabbix-server-mysql | |
| met PostgreSQL-ondersteuning | zabbix/zabbix-server-pgsql | |
| Zabbix-webinterface | ||
| gebaseerd op Apache2-webserver met MySQL-ondersteuning | zabbix/zabbix-web-apache-mysql | |
| gebaseerd op Apache2-webserver met PostgreSQL-ondersteuning | zabbix/zabbix-web-apache-pgsql | |
| gebaseerd op Nginx-webserver met MySQL-ondersteuning | zabbix/zabbix-web-nginx-mysql | |
| gebaseerd op Nginx-webserver met PostgreSQL-ondersteuning | zabbix/zabbix-web-nginx-pgsql | |
| Zabbix-proxy | ||
| met SQLite3-ondersteuning | zabbix/zabbix-proxy-sqlite3 | |
| met MySQL-ondersteuning | zabbix/zabbix-proxy-mysql | |
| Zabbix Java-gateway | zabbix/zabbix-java-gateway | |
SNMP trap-ondersteuning wordt geleverd in een apart repository zabbix/zabbix-snmptraps. Het kan worden gekoppeld aan Zabbix-server en Zabbix-proxy.
Tags
Officiële Zabbix component images kunnen de volgende tags bevatten:
| Tag | Beschrijving | Voorbeeld |
|---|---|---|
| latest | De nieuwste stabiele versie van een Zabbix-component gebaseerd op een Alpine Linux-image. | zabbix-agent:latest |
| <OS>-trunk | De nieuwste nightly build van de momenteel in ontwikkeling zijnde Zabbix-versie op een specifiek besturingssysteem. <OS> - het basisbesturingssysteem. Ondersteunde waarden: alpine - Alpine Linux; ltsc2019 - Windows 10 LTSC 2019 (alleen agent); ol - Oracle Linux; ltsc2022 - Windows 11 LTSC 2022 (alleen agent); ubuntu - Ubuntu |
zabbix agent:ubuntu-trunk |
| <OS>-latest | De nieuwste stabiele versie van een Zabbix-component op een specifiek besturingssysteem. <OS> - het basisbesturingssysteem. Ondersteunde waarden: alpine - Alpine Linux; ltsc2019 - Windows 10 LTSC 2019 (alleen agent); ol - Oracle Linux; ltsc2022 - Windows 11 LTSC 2022 (alleen agent); ubuntu - Ubuntu |
zabbix-agent:ol-latest |
| <OS>-X.X-latest | De nieuwste minor-versie van een Zabbix-component van een specifieke major-versie en besturingssysteem. <OS> - het basisbesturingssysteem. Ondersteunde waarden: alpine - Alpine Linux; ltsc2019 - Windows 10 LTSC 2019 (alleen agent); ol - Oracle Linux; ltsc2022 - Windows 11 LTSC 2022 (alleen agent); ubuntu - Ubuntu X.X - de major Zabbix-versie (bijv. 5.0, 6.0, 6.4). |
zabbix-agent:alpine-6.4-latest |
| <OS>-X.X.* | De nieuwste minor-versie van een Zabbix-component van een specifieke major-versie en besturingssysteem. <OS> - het basisbesturingssysteem. Ondersteunde waarden: alpine - Alpine Linux; ltsc2019 - Windows 10 LTSC 2019 (alleen agent); ol - Oracle Linux; ltsc2022 - Windows 11 LTSC 2022 (alleen agent); ubuntu - Ubuntu X.X - de major Zabbix-versie (bijv. 5.0, 6.0, 6.4). * - de Zabbix minor-versie |
zabbix-agent:alpine-6.4.1 |
Initiële configuratie
Na het downloaden van de afbeeldingen start je de containers door het uitvoeren van het docker run-commando, gevolgd door aanvullende argumenten om de vereiste omgevingsvariabelen en/of koppelingspunten op te geven. Hieronder worden enkele configuratievoorbeelden gegeven.
::: notitie Om communicatie tussen Zabbix-componenten mogelijk te maken, worden enkele poorten, zoals 10051/TCP voor Zabbix-server (trapper), 10050/TCP voor Zabbix-agent, 162/UDP voor SNMP-traps en 80/TCP voor Zabbix-webinterface, blootgesteld aan de hostmachine. Een volledige lijst van standaardpoorten die door Zabbix-componenten worden gebruikt, is beschikbaar op de Vereisten pagina. Voor Zabbix-server en -agent kan de standaardpoort worden gewijzigd door de omgevingsvariabele ZBX_LISTENPORT in te stellen. :::
Omgevingsvariabelen
Alle Zabbix-componentafbeeldingen bieden omgevingsvariabelen om de configuratie te beheersen. Ondersteunde omgevingsvariabelen worden vermeld in het componentrepository.
Deze omgevingsvariabelen zijn opties uit Zabbix-configuratiebestanden, maar met een andere benamingsmethode. Bijvoorbeeld, ZBX_LOGSLOWQUERIES is gelijk aan LogSlowQueries uit de Zabbix server en Zabbix proxy configuratiebestanden.
::: notitiebelangrijk
Sommige configuratieopties kunnen niet worden gewijzigd. Bijvoorbeeld, PIDFile en LogType.
:::
De volgende omgevingsvariabelen zijn specifiek voor Docker-componenten en bestaan niet in Zabbix-configuratiebestanden:
| Variabele | Componenten | Standaardwaarde | Beschrijving |
|---|---|---|---|
DB_SERVER_HOST |
Server Proxy Web-interface |
mysql-server voor MYSQL postgres-server voor PostgreSQL |
IP- of DNS-naam van de MySQL- of PostgreSQL-server. |
DB_SERVER_PORT |
Server Proxy Web-interface |
3306 voor MYSQL 5432 voor PostgreSQL |
Poort van de MySQL- of PostgreSQL-server. |
MYSQL_USER |
Server Proxy Web-interface |
zabbix |
Gebruikersnaam van de MySQL-database. |
MYSQL_PASSWORD |
Server Proxy Web-interface |
zabbix |
Wachtwoord van de MySQL-database. |
MYSQL_DATABASE |
Server Proxy Web-interface |
zabbix voor Zabbix-server 'zabbix_proxy' voor Zabbix-proxy |
Naam van de Zabbix-database. |
POSTGRES_USER |
Server Web-interface |
zabbix |
Gebruikersnaam van de PostgreSQL-database. |
POSTGRES_PASSWORD |
Server Web-interface |
zabbix |
Wachtwoord van de PostgreSQL-database. |
POSTGRES_DB |
Server Web-interface |
zabbix voor Zabbix-server 'zabbix_proxy' voor Zabbix-proxy |
Naam van de Zabbix-database. |
PHP_TZ |
Web-interface | Europe/Riga |
Tijdzone in PHP-formaat. Een volledige lijst van ondersteunde tijdzones is beschikbaar op php.net. |
ZBX_SERVER_NAME |
Web-interface | Zabbix Docker |
Zichtbare naam van de Zabbix-installatie in de rechterbovenhoek van de webinterface. |
ZBX_JAVAGATEWAY_ENABLE |
Server Proxy |
false |
Schakelt communicatie met Zabbix Java-gateway in om Java-gerelateerde controles te verzamelen. |
ZBX_ENABLE_SNMP_TRAPS |
Server Proxy |
Schakelt SNMP-trapfunctie in. Het vereist een zabbix-snmptraps-instantie en een gedeelde volume /var/lib/zabbix/snmptraps naar Zabbix-server of Zabbix-proxy. |
Volumes
De afbeeldingen maken het mogelijk om volumes te koppelen met behulp van de volgende koppelpunten:
| Volume | Beschrijving | |
|---|---|---|
| Zabbix agent | ||
| /etc/zabbix/zabbix_agentd.d | Het volume maakt het mogelijk om *.conf-bestanden op te nemen en de Zabbix-agent uit te breiden met behulp van de UserParameter-functie |
|
| /var/lib/zabbix/modules | Het volume maakt het mogelijk om aanvullende modules te laden en de Zabbix-agent uit te breiden met behulp van de LoadModule-functie | |
| /var/lib/zabbix/enc | Het volume wordt gebruikt om TLS-gerelateerde bestanden op te slaan. Deze bestandsnamen worden gespecificeerd met behulp van de omgevingsvariabelen ZBX_TLSCAFILE, ZBX_TLSCRLFILE, ZBX_TLSKEY_FILE en ZBX_TLSPSKFILE |
|
| Zabbix server | ||
| /usr/lib/zabbix/alertscripts | Het volume wordt gebruikt voor aangepaste waarschuwingsscripts. Het is de parameter AlertScriptsPath in zabbix_server.conf |
|
| /usr/lib/zabbix/externalscripts | Het volume wordt gebruikt door externe checks. Het is de parameter ExternalScripts in zabbix_server.conf |
|
| /var/lib/zabbix/modules | Het volume maakt het mogelijk om aanvullende modules te laden en de Zabbix-server uit te breiden met behulp van de LoadModule-functie | |
| /var/lib/zabbix/enc | Het volume wordt gebruikt om TLS-gerelateerde bestanden op te slaan. Deze bestandsnamen worden gespecificeerd met behulp van de omgevingsvariabelen ZBX_TLSCAFILE, ZBX_TLSCRLFILE, ZBX_TLSKEY_FILE en ZBX_TLSPSKFILE |
|
| /var/lib/zabbix/ssl/certs | Het volume wordt gebruikt als locatie voor SSL-clientcertificaatbestanden voor clientauthenticatie. Het is de parameter SSLCertLocation in zabbix_server.conf |
|
| /var/lib/zabbix/ssl/keys | Het volume wordt gebruikt als locatie voor SSL-privésleutelbestanden voor clientauthenticatie. Het is de parameter SSLKeyLocation in zabbix_server.conf |
|
| /var/lib/zabbix/ssl/ssl_ca | Het volume wordt gebruikt als locatie voor certificaatautoriteit (CA)-bestanden voor SSL-servercertificaatverificatie. Het is de parameter SSLCALocation in zabbix_server.conf |
|
| /var/lib/zabbix/snmptraps | Het volume wordt gebruikt als locatie voor het bestand snmptraps.log. Het kan worden gedeeld door de zabbix-snmptraps-container en worden geërfd met behulp van de Docker-optie volumes_from bij het maken van een nieuwe instantie van de Zabbix-server. De functie voor het verwerken van SNMP-traps kan worden ingeschakeld met een gedeeld volume en door de omgevingsvariabele ZBX_ENABLE_SNMP_TRAPS te schakelen naar 'true' |
|
| /var/lib/zabbix/mibs | Het volume maakt het mogelijk om nieuwe MIB-bestanden toe te voegen. Het ondersteunt geen submappen, alle MIB's moeten worden geplaatst in /var/lib/zabbix/mibs |
|
| Zabbix proxy | ||
| /usr/lib/zabbix/externalscripts | Het volume wordt gebruikt door externe checks. Het is de parameter ExternalScripts in zabbix_proxy.conf |
|
| /var/lib/zabbix/db_data/ | Het volume maakt het mogelijk om databasebestanden op externe apparaten op te slaan. Alleen ondersteund voor Zabbix proxy met SQLite3 | |
| /var/lib/zabbix/modules | Het volume maakt het mogelijk om aanvullende modules te laden en de Zabbix-server uit te breiden met behulp van de LoadModule-functie | |
| /var/lib/zabbix/enc | Het volume wordt gebruikt om TLS-gerelateerde bestanden op te slaan. Deze bestandsnamen worden gespecificeerd met behulp van de omgevingsvariabelen ZBX_TLSCAFILE, ZBX_TLSCRLFILE, ZBX_TLSKEY_FILE en ZBX_TLSPSKFILE |
|
| /var/lib/zabbix/ssl/certs | Het volume wordt gebruikt als locatie voor SSL-clientcertificaatbestanden voor clientauthenticatie. Het is de parameter SSLCertLocation in zabbix_proxy.conf |
|
| /var/lib/zabbix/ssl/keys | Het volume wordt gebruikt als locatie voor SSL-privésleutelbestanden voor clientauthenticatie. Het is de parameter SSLKeyLocation in zabbix_proxy.conf |
|
| /var/lib/zabbix/ssl/ssl_ca | Het volume wordt gebruikt als locatie voor certificaatautoriteit (CA)-bestanden voor SSL-servercertificaatverificatie. Het is de parameter SSLCALocation in zabbix_proxy.conf |
|
| /var/lib/zabbix/snmptraps | Het volume wordt gebruikt als locatie voor het bestand snmptraps.log. Het kan worden gedeeld door de zabbix-snmptraps-container en worden geërfd met behulp van de Docker-optie volumes_from bij het maken van een nieuwe instantie van de Zabbix-server. De functie voor het verwerken van SNMP-traps kan worden ingeschakeld met een gedeeld volume en door de omgevingsvariabele ZBX_ENABLE_SNMP_TRAPS te schakelen naar 'true' |
|
| /var/lib/zabbix/mibs | Het volume maakt het mogelijk om nieuwe MIB-bestanden toe te voegen. Het ondersteunt geen submappen, alle MIB's moeten worden geplaatst in /var/lib/zabbix/mibs |
|
| Zabbix webinterface gebaseerd op Apache2-webserver | ||
| /etc/ssl/apache2 | Het volume maakt het mogelijk om HTTPS in te schakelen voor de Zabbix-webinterface. Het volume moet de twee ssl.crt- en ssl.key-bestanden bevatten die zijn voorbereid voor Apache2 SSL-verbindingen |
|
| Zabbix webinterface gebaseerd op Nginx-webserver | ||
| /etc/ssl/nginx | Het volume maakt het mogelijk om HTTPS in te schakelen voor de Zabbix-webinterface. Het volume moet de twee ssl.crt-, ssl.key-bestanden en dhparam.pem bevatten die zijn voorbereid voor Nginx SSL-verbindingen |
|
| Zabbix snmptraps | ||
| /var/lib/zabbix/snmptraps | Het volume bevat het logbestand snmptraps.log met de naam van ontvangen SNMP-traps |
|
| /var/lib/zabbix/mibs | Het volume maakt het mogelijk om nieuwe MIB-bestanden toe te voegen. Het ondersteunt geen submappen, alle MIB's moeten worden geplaatst in /var/lib/zabbix/mibs |
|
Voor aanvullende informatie kunt u de officiële Zabbix-repositories in Docker Hub raadplegen.
Voorbeelden
Voorbeeld 1
Dit voorbeeld laat zien hoe je Zabbix-server met MySQL-databaseondersteuning, de Zabbix-webinterface gebaseerd op de Nginx-webserver en de Zabbix Java Gateway kunt uitvoeren.
-
Maak een netwerk aan dat is toegewijd aan containers voor Zabbix-componenten:
docker network create --subnet 172.20.0.0/16 --ip-range 172.20.240.0/20 zabbix-net
-
Start een lege MySQL-serverinstantie:
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.0-oracle \ --character-set-server=utf8 --collation-server=utf8_bin \ --default-authentication-plugin=mysql_native_password -
Start een Zabbix Java Gateway-instantie:
docker run --name zabbix-java-gateway -t \
--network=zabbix-net \ --restart unless-stopped \ -d zabbix/zabbix-java-gateway:alpine-6.4-latest -
Start een Zabbix-serverinstantie en koppel de instantie aan de gemaakte MySQL-serverinstantie:
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-6.4-latest -
Start de Zabbix-webinterface en koppel de instantie aan de gemaakte MySQL-server- en Zabbix-serverinstanties:
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-6.4-latest
Voorbeeld 2
Dit voorbeeld laat zien hoe je Zabbix-server met PostgreSQL-databaseondersteuning, de Zabbix-webinterface gebaseerd op de Nginx-webserver en SNMP-trapfunctionaliteit kunt uitvoeren.
-
Maak een netwerk aan dat is toegewijd aan containers voor Zabbix-componenten:
docker network create --subnet 172.20.0.0/16 --ip-range 172.20.240.0/20 zabbix-net
-
Start een lege PostgreSQL-serverinstantie:
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 -
Start een Zabbix snmptraps-instantie:
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-6.4-latest -
Start een Zabbix-serverinstantie en koppel de instantie aan de gemaakte PostgreSQL-serverinstantie:
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-6.4-latest -
Start de Zabbix-webinterface en koppel de instantie aan de gemaakte PostgreSQL-server- en Zabbix-serverinstanties:
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-6.4-latest
Voorbeeld 3
Dit voorbeeld laat zien hoe je Zabbix-server met MySQL-databaseondersteuning, de Zabbix-webinterface gebaseerd op de Nginx-webserver en de Zabbix Java Gateway kunt uitvoeren met podman op Red Hat 8.
-
Maak een nieuwe pod met de naam
zabbixen open poorten (webinterface, Zabbix-server trapper):podman pod create --name zabbix -p 80:8080 -p 10051:10051
-
(optioneel) Start de Zabbix-agentcontainer op de locatie van de
zabbix-pod: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-64:latest -
Maak de
./mysql/-directory aan op de hosten start Oracle MySQL-server 8.0:
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.0
--character-set-server=utf8 --collation-server=utf8_bin
--default-authentication-plugin=mysql_native_password -
Start de Zabbix-servercontainer:
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-64 -
Start de Zabbix Java Gateway-container:
podman run --name zabbix-java-gateway -t
--restart=always
--pod=zabbix
-d registry.connect.redhat.com/zabbix/zabbix-java-gateway-64 -
Start de Zabbix-webinterface-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-64
De pod zabbix opent poort 80/TCP (HTTP) naar de hostmachine vanaf poort 8080/TCP van de container zabbix-web-mysql.
Docker Compose
Als alternatief kan Zabbix worden geïnstalleerd met behulp van de Docker Compose-plugin. Samenstellingsbestanden voor het definiëren en uitvoeren van Zabbix-componenten in meerdere containers zijn beschikbaar in de officiële Zabbix Docker-repository op GitHub.
De officiële Zabbix-composebestanden ondersteunen versie 3 van Docker Compose.
Deze samenstellingsbestanden zijn toegevoegd als voorbeelden; ze zijn overlappend. Zo bevatten ze proxies met zowel MySQL- als SQLite3-ondersteuning.
Om Docker Compose-bestanden van Zabbix te verkrijgen, kloon je de repository:
git clone https://github.com/zabbix/zabbix-docker.git
Schakel over naar de gewenste versie:
git checkout 6.4
Configureer samenstellingsbestanden, maak containers aan en start ze:
docker compose -f ./docker-compose_v3_alpine_mysql_latest.yaml up
Vervang docker-compose_v3_alpine_mysql_latest.yaml in het bovenstaande commando door het gewenste configuratiebestand.
De volgende opties zijn beschikbaar:
| Bestandsnaam | Beschrijving |
|---|---|
docker-compose_v3_alpine_mysql_latest.yaml |
Het samenstellingsbestand voert de nieuwste versie van Zabbix 6.4-componenten uit op Alpine Linux met MySQL-databaseondersteuning. |
docker-compose_v3_alpine_mysql_local.yaml |
Het samenstellingsbestand bouwt lokaal de nieuwste versie van Zabbix 6.4 en voert Zabbix-componenten uit op Alpine Linux met MySQL-databaseondersteuning. |
docker-compose_v3_alpine_pgsql_latest.yaml |
Het samenstellingsbestand voert de nieuwste versie van Zabbix 6.4-componenten uit op Alpine Linux met PostgreSQL-databaseondersteuning. |
docker-compose_v3_alpine_pgsql_local.yaml |
Het samenstellingsbestand bouwt lokaal de nieuwste versie van Zabbix 6.4 en voert Zabbix-componenten uit op Alpine Linux met PostgreSQL-databaseondersteuning. |
docker-compose_v3_ol_mysql_latest.yaml |
Het samenstellingsbestand voert de nieuwste versie van Zabbix 6.4-componenten uit op Oracle Linux met MySQL-databaseondersteuning. |
docker-compose_v3_ol_mysql_local.yaml |
Het samenstellingsbestand bouwt lokaal de nieuwste versie van Zabbix 6.4 en voert Zabbix-componenten uit op Oracle Linux met MySQL-databaseondersteuning. |
docker-compose_v3_ol_pgsql_latest.yaml |
Het samenstellingsbestand voert de nieuwste versie van Zabbix 6.4-componenten uit op Oracle Linux met PostgreSQL-databaseondersteuning. |
docker-compose_v3_ol_pgsql_local.yaml |
Het samenstellingsbestand bouwt lokaal de nieuwste versie van Zabbix 6.4 en voert Zabbix-componenten uit op Oracle Linux met PostgreSQL-databaseondersteuning. |
docker-compose_v3_ubuntu_mysql_latest.yaml |
Het samenstellingsbestand voert de nieuwste versie van Zabbix 6.4-componenten uit op Ubuntu 20.04 met MySQL-databaseondersteuning. |
docker-compose_v3_ubuntu_mysql_local.yaml |
Het samenstellingsbestand bouwt lokaal de nieuwste versie van Zabbix 6.4 en voert Zabbix-componenten uit op Ubuntu 20.04 met MySQL-databaseondersteuning. |
docker-compose_v3_ubuntu_pgsql_latest.yaml |
Het samenstellingsbestand voert de nieuwste versie van Zabbix 6.4-componenten uit op Ubuntu 20.04 met PostgreSQL-databaseondersteuning. |
docker-compose_v3_ubuntu_pgsql_local.yaml |
Het samenstellingsbestand bouwt lokaal de nieuwste versie van Zabbix 6.4 en voert Zabbix-componenten uit op Ubuntu 20.04 met PostgreSQL-databaseondersteuning. |
Opslag
Compose-bestanden zijn geconfigureerd om lokale opslag op een hostmachine te ondersteunen.
Docker Compose zal een zbx_env-map aanmaken in de map met het compose-bestand wanneer je Zabbix-componenten uitvoert met behulp van het compose-bestand.
De map zal dezelfde structuur bevatten als beschreven in de Volumes-sectie en de map voor database-opslag.
Er zijn ook volumes in alleen-lezen modus voor de bestanden /etc/localtime en /etc/timezone.
Omgevingsvariabelen
De variabele bestanden hebben de volgende naamstructuur: .env_<type component> en bevinden zich in de env_vars map.
Zie omgevingsvariabelen voor details over de benaming van variabelen en de beschikbare selecties.
Voorbeelden
Voorbeeld 1
# git checkout 6.4
# docker compose -f ./docker-compose_v3_alpine_mysql_latest.yaml up -d
Deze opdracht zal de nieuwste Zabbix 6.4-images downloaden voor elk Zabbix-component en ze in detach-modus uitvoeren.
Vergeet niet om .env_<type of component>-bestanden te downloaden van de officiële Zabbix repository op GitHub met samenstellingsbestanden.
Voorbeeld 2
# git checkout 6.4
# docker compose -f ./docker-compose_v3_ubuntu_mysql_local.yaml up -d
Deze opdracht zal het basisbeeld Ubuntu 22.04 (jammy) downloaden, vervolgens Zabbix 6.4-componenten lokaal bouwen en ze in detach-modus uitvoeren.