Installazione da container

Panoramica

Questa sezione descrive come distribuire Zabbix con Docker o Docker Compose.

Zabbix fornisce ufficialmente:

  • Immagini Docker separate per ciascun componente di Zabbix, da eseguire come container portabili e autosufficienti.
  • File Compose per definire ed eseguire componenti Zabbix multi-container in Docker.

A partire da Zabbix 6.0, i trigger deterministici devono essere creati durante l'installazione. Se il binary logging è abilitato per MySQL/MariaDB, ciò richiede privilegi di superuser oppure l'impostazione della variabile/del parametro di configurazione log_bin_trust_function_creators = 1. Per istruzioni su come impostare la variabile, vedere Script di creazione del database.
Si noti che, se eseguita da console, la variabile verrà impostata solo temporaneamente e verrà rimossa al riavvio di Docker. In questo caso, mantenere in esecuzione solo il servizio SQL, arrestare soltanto il servizio zabbix-server eseguendo 'docker compose down zabbix-server' e quindi 'docker compose up -d zabbix-server'.
In alternativa, è possibile impostare questa variabile nel file di configurazione.

File sorgente

I sorgenti dei file Docker sono archiviati nel repository ufficiale di Zabbix su GitHub, dove è possibile seguire le ultime modifiche ai file o fare un fork del progetto per creare le proprie immagini.

Docker

Zabbix fornisce immagini basate su una varietà di immagini OS di base. Per ottenere l'elenco delle immagini del sistema operativo di base supportate per uno specifico componente Zabbix, vedere la descrizione del componente in Docker Hub. Tutte le immagini Zabbix sono configurate per ricostruire le immagini più recenti se le immagini di base vengono aggiornate.

Installazione

Per ottenere l'immagine del componente Zabbix, eseguire:

docker pull zabbix/zabbix-server-mysql

Sostituire zabbix/zabbix-server-mysql con il nome del repository docker richiesto.

Questo comando scaricherà l'ultima versione stabile del componente Zabbix basata sul sistema operativo Alpine Linux. È possibile aggiungere dei tag al nome del repository per ottenere un'immagine basata su un altro sistema operativo oppure su una specifica versione major o minor di Zabbix.

I seguenti repository sono disponibili in Docker Hub:

Componente Repository Docker
Zabbix agent zabbix/zabbix-agent
Zabbix server
con supporto MySQL zabbix/zabbix-server-mysql
con supporto PostgreSQL zabbix/zabbix-server-pgsql
Interfaccia web di Zabbix
basata sul server web Apache2 con supporto MySQL zabbix/zabbix-web-apache-mysql
basata sul server web Apache2 con supporto PostgreSQL zabbix/zabbix-web-apache-pgsql
basata sul server web Nginx con supporto MySQL zabbix/zabbix-web-nginx-mysql
basata sul server web Nginx con supporto PostgreSQL zabbix/zabbix-web-nginx-pgsql
Zabbix proxy
con supporto SQLite3 zabbix/zabbix-proxy-sqlite3
con supporto MySQL zabbix/zabbix-proxy-mysql
Zabbix Java gateway zabbix/zabbix-java-gateway

Il supporto per le trap SNMP è fornito in un repository separato zabbix/zabbix-snmptraps. Può essere collegato a Zabbix server e Zabbix proxy.

Tag

Le immagini ufficiali dei componenti Zabbix possono contenere i seguenti tag:

Tag Descrizione Esempio
latest L'ultima versione stabile di un componente Zabbix basata sull'immagine Alpine Linux. zabbix-agent:latest
<OS>-trunk L'ultima build nightly della versione di Zabbix attualmente in fase di sviluppo su uno specifico sistema operativo.

<OS> - il sistema operativo di base. Valori supportati:
alpine - Alpine Linux;
ltsc2019 - Windows 10 LTSC 2019 (solo agent);
ol - Oracle Linux;
ltsc2022 - Windows 11 LTSC 2022 (solo agent);
ubuntu - Ubuntu
zabbix-agent:ubuntu-trunk
<OS>-latest L'ultima versione stabile di un componente Zabbix su uno specifico sistema operativo.

<OS> - il sistema operativo di base. Valori supportati:
alpine - Alpine Linux;
ltsc2019 - Windows 10 LTSC 2019 (solo agent);
ol - Oracle Linux;
ltsc2022 - Windows 11 LTSC 2022 (solo agent);
ubuntu - Ubuntu
zabbix-agent:ol-latest
<OS>-X.X-latest L'ultima versione secondaria di un componente Zabbix di una specifica versione principale e sistema operativo.

<OS> - il sistema operativo di base. Valori supportati:
alpine - Alpine Linux;
ltsc2019 - Windows 10 LTSC 2019 (solo agent);
ol - Oracle Linux;
ltsc2022 - Windows 11 LTSC 2022 (solo agent);
ubuntu - Ubuntu

X.X - la versione principale di Zabbix (ad es. 6.0, 7.4, 8.0).
zabbix-agent:alpine-8.0-latest
<OS>-X.X.* La versione secondaria specifica di un componente Zabbix di una specifica versione principale e sistema operativo.

<OS> - il sistema operativo di base. Valori supportati:
alpine - Alpine Linux;
ltsc2019 - Windows 10 LTSC 2019 (solo agent);
ol - Oracle Linux;
ltsc2022 - Windows 11 LTSC 2022 (solo agent);
ubuntu - Ubuntu

X.X - la versione principale di Zabbix (ad es. 6.0, 7.4, 8.0).

* - la versione secondaria di Zabbix
zabbix-agent:alpine-8.0.1

Configurazione iniziale

Dopo aver scaricato le immagini, avviare i container eseguendo il comando docker run seguito da argomenti aggiuntivi per specificare le variabili d'ambiente e/o i punti di mount richiesti. Di seguito sono riportati alcuni esempi di configurazione.

Per abilitare la comunicazione tra i componenti di Zabbix, alcune porte, come 10051/TCP per Zabbix server (trapper), 10050/TCP per Zabbix agent, 162/UDP per gli SNMP trap e 80/TCP per l'interfaccia web di Zabbix, saranno esposte a una macchina host. L'elenco completo delle porte predefinite utilizzate dai componenti di Zabbix è disponibile nella pagina Requisiti. Per Zabbix server e agent, la porta predefinita può essere modificata impostando la variabile d'ambiente ZBX_LISTENPORT environment variable.

Variabili d'ambiente

Tutte le immagini dei componenti Zabbix forniscono variabili d'ambiente per controllare la configurazione. Le variabili d'ambiente supportate sono elencate nel repository del componente.

Queste variabili d'ambiente corrispondono alle opzioni dei file di configurazione di Zabbix, ma con un metodo di denominazione diverso. Ad esempio, ZBX_LOGSLOWQUERIES equivale a LogSlowQueries nei file di configurazione di Zabbix server o Zabbix proxy.

Alcune opzioni di configurazione (ad esempio PIDFile e LogType) non possono essere modificate.

Le seguenti variabili d'ambiente sono specifiche dei componenti Docker e non esistono nei file di configurazione di Zabbix:

Variabile Componenti Valore predefinito Descrizione
DB_SERVER_HOST Server
Proxy
Interfaccia web
mysql-server per MYSQL
postgres-server per PostgreSQL
Nome IP o DNS del server MySQL o PostgreSQL.
DB_SERVER_PORT Server
Proxy
Interfaccia web
3306 per MYSQL
5432 per PostgreSQL
Porta del server MySQL o PostgreSQL.
MYSQL_USER Server
Proxy
Interfaccia web
zabbix Utente del database MySQL.
MYSQL_PASSWORD Server
Proxy
Interfaccia web
zabbix Password del database MySQL.
MYSQL_DATABASE Server
Proxy
Interfaccia web
zabbix per Zabbix server
zabbix_proxy per Zabbix proxy
Nome del database Zabbix.
POSTGRES_USER Server
Interfaccia web
zabbix Utente del database PostgreSQL.
POSTGRES_PASSWORD Server
Interfaccia web
zabbix Password del database PostgreSQL.
POSTGRES_DB Server
Interfaccia web
zabbix per Zabbix server
zabbix_proxy per Zabbix proxy
Nome del database Zabbix.
PHP_TZ Interfaccia web Europe/Riga Fuso orario in formato PHP. L'elenco completo dei fusi orari supportati è disponibile su php.net.
ZBX_SERVER_NAME Interfaccia web Zabbix Docker Nome visibile dell'installazione Zabbix sotto il logo Zabbix nel menu verticale dell'interfaccia web.
ZBX_JAVAGATEWAY_ENABLE Server
Proxy
false Abilita la comunicazione con Zabbix Java gateway per raccogliere controlli relativi a Java.
ZBX_ENABLE_SNMP_TRAPS Server
Proxy
false Abilita la funzionalità SNMP trap. Richiede un'istanza zabbix-snmptraps e il volume condiviso /var/lib/zabbix/snmptraps per Zabbix server o Zabbix proxy.
Volumi

Le immagini consentono di montare volumi utilizzando i seguenti punti di mount:

Volume Descrizione
Zabbix agent
/etc/zabbix/zabbix_agentd.d Il volume consente di includere file *.conf ed estendere Zabbix agent utilizzando la funzionalità UserParameter
/var/lib/zabbix/modules Il volume consente di caricare moduli aggiuntivi ed estendere Zabbix agent utilizzando la funzionalità LoadModule
/var/lib/zabbix/enc Il volume viene utilizzato per memorizzare file relativi a TLS. I nomi di questi file sono specificati utilizzando le variabili d'ambiente ZBX_TLSCAFILE, ZBX_TLSCRLFILE, ZBX_TLSKEY_FILE e ZBX_TLSPSKFILE
Zabbix server
/usr/lib/zabbix/alertscripts Il volume viene utilizzato per script di avviso personalizzati. Corrisponde al parametro AlertScriptsPath in zabbix_server.conf
/usr/lib/zabbix/externalscripts Il volume viene utilizzato da controlli esterni. Corrisponde al parametro ExternalScripts in zabbix_server.conf
/var/lib/zabbix/modules Il volume consente di caricare moduli aggiuntivi ed estendere Zabbix server utilizzando la funzionalità LoadModule
/var/lib/zabbix/enc Il volume viene utilizzato per memorizzare file relativi a TLS. I nomi di questi file sono specificati utilizzando le variabili d'ambiente ZBX_TLSCAFILE, ZBX_TLSCRLFILE, ZBX_TLSKEY_FILE e ZBX_TLSPSKFILE
/var/lib/zabbix/ssl/certs Il volume viene utilizzato come posizione dei file di certificato client SSL per l'autenticazione del client. Corrisponde al parametro SSLCertLocation in zabbix_server.conf
/var/lib/zabbix/ssl/keys Il volume viene utilizzato come posizione dei file di chiave privata SSL per l'autenticazione del client. Corrisponde al parametro SSLKeyLocation in zabbix_server.conf
/var/lib/zabbix/ssl/ssl_ca Il volume viene utilizzato come posizione dei file dell'autorità di certificazione (CA) per la verifica del certificato SSL del server. Corrisponde al parametro SSLCALocation in zabbix_server.conf
/var/lib/zabbix/snmptraps Il volume viene utilizzato come posizione del file snmptraps.log. Può essere condiviso dal container zabbix-snmptraps ed ereditato utilizzando l'opzione Docker volumes_from durante la creazione di una nuova istanza di Zabbix server. La funzionalità di elaborazione delle trap SNMP può essere abilitata utilizzando un volume condiviso e impostando la variabile d'ambiente ZBX_ENABLE_SNMP_TRAPS su 'true'
/var/lib/zabbix/mibs Il volume consente di aggiungere nuovi file MIB. Non supporta sottodirectory, tutti i MIB devono essere collocati in /var/lib/zabbix/mibs
Zabbix proxy
/usr/lib/zabbix/externalscripts Il volume viene utilizzato da controlli esterni. Corrisponde al parametro ExternalScripts in zabbix_proxy.conf
/var/lib/zabbix/db_data/ Il volume consente di memorizzare i file del database su dispositivi esterni. Supportato solo per Zabbix proxy con SQLite3
/var/lib/zabbix/modules Il volume consente di caricare moduli aggiuntivi ed estendere Zabbix server utilizzando la funzionalità LoadModule
/var/lib/zabbix/enc Il volume viene utilizzato per memorizzare file relativi a TLS. I nomi di questi file sono specificati utilizzando le variabili d'ambiente ZBX_TLSCAFILE, ZBX_TLSCRLFILE, ZBX_TLSKEY_FILE e ZBX_TLSPSKFILE
/var/lib/zabbix/ssl/certs Il volume viene utilizzato come posizione dei file di certificato client SSL per l'autenticazione del client. Corrisponde al parametro SSLCertLocation in zabbix_proxy.conf
/var/lib/zabbix/ssl/keys Il volume viene utilizzato come posizione dei file di chiave privata SSL per l'autenticazione del client. Corrisponde al parametro SSLKeyLocation in zabbix_proxy.conf
/var/lib/zabbix/ssl/ssl_ca Il volume viene utilizzato come posizione dei file dell'autorità di certificazione (CA) per la verifica del certificato SSL del server. Corrisponde al parametro SSLCALocation in zabbix_proxy.conf
/var/lib/zabbix/snmptraps Il volume viene utilizzato come posizione del file snmptraps.log. Può essere condiviso dal container zabbix-snmptraps ed ereditato utilizzando l'opzione Docker volumes_from durante la creazione di una nuova istanza di Zabbix server. La funzionalità di elaborazione delle trap SNMP può essere abilitata utilizzando un volume condiviso e impostando la variabile d'ambiente ZBX_ENABLE_SNMP_TRAPS su 'true'
/var/lib/zabbix/mibs Il volume consente di aggiungere nuovi file MIB. Non supporta sottodirectory, tutti i MIB devono essere collocati in /var/lib/zabbix/mibs
Interfaccia web di Zabbix basata su web server Apache2
/etc/ssl/apache2 Il volume consente di abilitare HTTPS per l'interfaccia web di Zabbix. Il volume deve contenere i due file ssl.crt e ssl.key preparati per le connessioni SSL di Apache2
Interfaccia web di Zabbix basata su web server Nginx
/etc/ssl/nginx Il volume consente di abilitare HTTPS per l'interfaccia web di Zabbix. Il volume deve contenere i due file ssl.crt, ssl.key e dhparam.pem preparati per le connessioni SSL di Nginx
Zabbix snmptraps
/var/lib/zabbix/snmptraps Il volume contiene il file di log snmptraps.log con il nome delle trap SNMP ricevute
/var/lib/zabbix/mibs Il volume consente di aggiungere nuovi file MIB. Non supporta sottodirectory, tutti i MIB devono essere collocati in /var/lib/zabbix/mibs

Per ulteriori informazioni, vedere i repository ufficiali di Zabbix su Docker Hub.

Esempi

Esempio 1

L'esempio mostra come eseguire Zabbix server con supporto per il database MySQL, l'interfaccia web di Zabbix basata sul web server Nginx e Zabbix Java gateway.

1. Creare una rete dedicata ai container dei componenti Zabbix:

docker network create --subnet 172.20.0.0/16 --ip-range 172.20.240.0/20 zabbix-net

2. Avviare un'istanza vuota di server MySQL:

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. Avviare un'istanza di Zabbix Java gateway:

docker run --name zabbix-java-gateway -t \
    --network=zabbix-net \
    --restart unless-stopped \
    -d zabbix/zabbix-java-gateway:alpine-8.0-latest

4. Avviare un'istanza di Zabbix server e collegarla all'istanza di server MySQL creata:

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. Avviare l'interfaccia web di Zabbix e collegarla alle istanze create di server MySQL e Zabbix server:

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

Esempio 2

L'esempio mostra come eseguire Zabbix server con supporto per il database PostgreSQL, l'interfaccia web di Zabbix basata sul web server Nginx e la funzionalità SNMP trap.

1. Creare una rete dedicata ai container dei componenti Zabbix:

docker network create --subnet 172.20.0.0/16 --ip-range 172.20.240.0/20 zabbix-net

2. Avviare un'istanza vuota di server PostgreSQL:

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. Avviare un'istanza di Zabbix snmptraps:

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. Avviare un'istanza di Zabbix server e collegarla all'istanza di server PostgreSQL creata:

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. Avviare l'interfaccia web di Zabbix e collegarla alle istanze create di server PostgreSQL e Zabbix server:

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

Esempio 3

L'esempio mostra come eseguire Zabbix server con supporto per il database MySQL, l'interfaccia web di Zabbix basata sul web server Nginx e Zabbix Java gateway utilizzando podman su Red Hat 8.

1. Creare un nuovo pod con nome zabbix e porte esposte (interfaccia web, trapper di Zabbix server):

podman pod create --name zabbix -p 80:8080 -p 10051:10051

2. (opzionale) Avviare il container di Zabbix agent nella posizione del 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. Creare la directory ./mysql/ sull'host e avviare 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. Avviare il container di Zabbix server:

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. Avviare il container di Zabbix Java Gateway:

podman run --name zabbix-java-gateway -t \
    --restart=always \
    --pod=zabbix \
    -d registry.connect.redhat.com/zabbix/zabbix-java-gateway-74

6. Avviare il container dell'interfaccia web di Zabbix:

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

Il pod zabbix espone la porta 80/TCP (HTTP) alla macchina host dalla porta 8080/TCP del container zabbix-web-mysql.

Docker Compose

In alternativa, Zabbix può essere installato utilizzando il plugin Docker Compose. I file Compose per definire ed eseguire componenti Zabbix multi-container sono disponibili nel repository Docker ufficiale di Zabbix su GitHub.

I file Compose ufficiali di Zabbix supportano la versione 3 di Docker Compose.

Questi file Compose sono aggiunti come esempi; sono sovraccarichi. Ad esempio, contengono proxy con supporto sia per MySQL che per SQLite3.

Per ottenere i file Docker Compose forniti da Zabbix, clonare il repository:

git clone https://github.com/zabbix/zabbix-docker.git

Passare alla versione richiesta:

git checkout 8.0

Configurare i file Compose e creare e avviare i container:

docker compose -f ./docker-compose_v3_alpine_mysql_latest.yaml up

Sostituire docker-compose_v3_alpine_mysql_latest.yaml nel comando sopra con il file di configurazione richiesto.

Sono disponibili le seguenti opzioni:

Nome file Descrizione
docker-compose_v3_alpine_mysql_latest.yaml Il file Compose esegue l'ultima versione dei componenti Zabbix 8.0 su Alpine Linux con supporto per database MySQL.
docker-compose_v3_alpine_mysql_local.yaml Il file Compose compila localmente l'ultima versione di Zabbix 8.0 ed esegue i componenti Zabbix su Alpine Linux con supporto per database MySQL.
docker-compose_v3_alpine_pgsql_latest.yaml Il file Compose esegue l'ultima versione dei componenti Zabbix 8.0 su Alpine Linux con supporto per database PostgreSQL.
docker-compose_v3_alpine_pgsql_local.yaml Il file Compose compila localmente l'ultima versione di Zabbix 8.0 ed esegue i componenti Zabbix su Alpine Linux con supporto per database PostgreSQL.
docker-compose_v3_ol_mysql_latest.yaml Il file Compose esegue l'ultima versione dei componenti Zabbix 8.0 su Oracle Linux con supporto per database MySQL.
docker-compose_v3_ol_mysql_local.yaml Il file Compose compila localmente l'ultima versione di Zabbix 8.0 ed esegue i componenti Zabbix su Oracle Linux con supporto per database MySQL.
docker-compose_v3_ol_pgsql_latest.yaml Il file Compose esegue l'ultima versione dei componenti Zabbix 8.0 su Oracle Linux con supporto per database PostgreSQL.
docker-compose_v3_ol_pgsql_local.yaml Il file Compose compila localmente l'ultima versione di Zabbix 8.0 ed esegue i componenti Zabbix su Oracle Linux con supporto per database PostgreSQL.
docker-compose_v3_ubuntu_mysql_latest.yaml Il file Compose esegue l'ultima versione dei componenti Zabbix 8.0 su Ubuntu 24.04 (noble) con supporto per database MySQL.
docker-compose_v3_ubuntu_mysql_local.yaml Il file Compose compila localmente l'ultima versione di Zabbix 8.0 ed esegue i componenti Zabbix su Ubuntu 24.04 (noble) con supporto per database MySQL.
docker-compose_v3_ubuntu_pgsql_latest.yaml Il file Compose esegue l'ultima versione dei componenti Zabbix 8.0 su Ubuntu 24.04 (noble) con supporto per database PostgreSQL.
docker-compose_v3_ubuntu_pgsql_local.yaml Il file Compose compila localmente l'ultima versione di Zabbix 8.0 ed esegue i componenti Zabbix su Ubuntu 24.04 (noble) con supporto per database PostgreSQL.

Archiviazione

I file Compose sono configurati per supportare l'archiviazione locale su una macchina host. Docker Compose creerà una directory zbx_env nella cartella contenente il file compose quando si eseguono i componenti Zabbix utilizzando il file compose. La directory conterrà la stessa struttura descritta nella sezione Volumes e una directory per l'archiviazione del database.

Sono inoltre presenti volumi in modalità di sola lettura per i file /etc/localtime e /etc/timezone.

Variabili d'ambiente

I file delle variabili hanno la seguente struttura di denominazione: .env_<type of component> e si trovano nella directory env_vars. Per i dettagli sulla denominazione delle variabili e sulla selezione disponibile, vedere variabili d'ambiente.

Esempi

Esempio 1

git checkout 8.0
docker compose -f ./docker-compose_v3_alpine_mysql_latest.yaml up -d

Il comando scaricherà le immagini Zabbix 8.0 più recenti per ciascun componente Zabbix e le eseguirà in modalità detach.

Non dimenticare di scaricare i file .env_<type of component> dal repository ufficiale Zabbix su github.com insieme ai file compose.

Esempio 2

git checkout 8.0
docker compose -f ./docker-compose_v3_ubuntu_mysql_local.yaml up -d

Il comando scaricherà l'immagine di base Ubuntu 24.04 (noble), quindi compilerà localmente i componenti Zabbix 8.0 e li eseguirà in modalità detach.