6 Instalación desde contenedores

Descripción general

Esta sección describe cómo implementar Zabbix con Docker o Docker Compose.

Zabbix proporciona oficialmente:

  • Imágenes de Docker separadas para cada componente Zabbix para funcionar como contenedores portátiles y autosuficientes.
  • Archivos de composición para definir y ejecutar componentes Zabbix "multicontenedor" en Docker.

Desde Zabbix 6.0, es necesario crear iniciadores deterministas durante la instalación. Si el registro binario está habilitado para MySQL/MariaDB, esto requiere privilegios de superusuario o establecer el parámetro de configuración/variable log_bin_trust_function_creators = 1. Consulte Scripts de creación de bases de datos para obtener instrucciones sobre cómo configurar la variable.
Tenga en cuenta que si se ejecuta desde una consola, la variable solo se configurará temporalmente y se eliminará cuando se reinicie Docker. En este caso, mantenga su servicio SQL en ejecución, solo detenga el servicio zabbix-server ejecutando 'docker compose down zabbix-server' y luego 'docker compose up -d zabbix-server'.
Alternativamente, puede configurar esta variable en el archivo de configuración.

Docker

Zabbix proporciona imágenes basadas en una variedad de imagenes de sistemas operativos. Para obtener la lista de imágenes del sistema operativo base compatibles para un componente Zabbix específico, consulte la descripción del componente en Docker Hub. Todas las imágenes de Zabbix están configuradas para reconstruir las imágenes más recientes si se actualizan las imágenes base.

Instalación

Para obtener la imagen del componente Zabbix, ejecute:

docker pull zabbix/zabbix-server-mysql

Reemplace zabbix/zabbix-server-mysql con el nombre del repositorio de Docker requerido.

Este comando extraerá la última versión estable del componente Zabbix basada en el sistema operativo Alpine Linux. Puede agregar etiquetas al nombre del repositorio para obtener una imagen basada en otro sistema operativo o en la versión principal o secundaria específica de Zabbix.

Los siguientes repositorios están disponibles en Docker Hub:

Componente Repositorio Docker
Agente Zabbix zabbix/zabbix-agent
Servidor Zabbix
con soporte MySQL zabbix/zabbix-server-mysql
con soporte PostgreSQL zabbix/zabbix-server-pgsql
Interfaz web de Zabbix
basado en el servidor web Apache2 con soporte MySQL zabbix/zabbix-web-apache-mysql
basado en el servidor web Apache2 con soporte PostgreSQL zabbix/zabbix-web-apache-pgsql
basado en el servidor web Nginx con soporte MySQL zabbix/zabbix-web-nginx-mysql
basado en el servidor web Nginx con soporte PostgreSQL zabbix/zabbix-web-nginx-pgsql
Proxy Zabbix
con soporte SQLite3 zabbix/zabbix-proxy-sqlite3
con soporte MySQL zabbix/zabbix-proxy-mysql
Zabbix Java Gateway zabbix/zabbix-java-gateway

La compatibilidad con capturas SNMP se proporciona en un repositorio separado [zabbix/zabbix-snmptraps] (https://hub.docker.com/r/zabbix/zabbix-snmptraps/). Se puede vincular con el servidor Zabbix y el Proxy Zabbix.

Etiquetas

Las imágenes oficiales de los componentes de Zabbix pueden contener las siguientes etiquetas:

Etiqueta Descripción Ejemplo
latest La última versión estable de un componente Zabbix basado en la imagen de Alpine Linux. zabbix-agent:latest
<SO>-trunk La última versión nocturna de Zabbix que se está desarrollando actualmente en un sistema operativo específico.

<OS> - el sistema operativo base. Valores admitidos:
alpine - Alpine Linux;
ltsc2019 - Windows 10 LTSC 2019 (solo agente);
ol - Oracle Linux;
ltsc2022 - Windows 11 LTSC 2022 (solo agente);
ubuntu - Ubuntu
zabbix agent:ubuntu-trunk
<SO>-latest La última versión estable de un componente de Zabbix en un sistema operativo específico.

<OS> - el sistema operativo base. Valores admitidos:
alpine - Alpine Linux;
ltsc2019 - Windows 10 LTSC 2019 (solo agente);
ol - Oracle Linux;
ltsc2022 - Windows 11 LTSC 2022 (solo agente);
ubuntu - Ubuntu
zabbix-agent:ol-latest
<OS>-X.X-latest La última versión menor de un componente de Zabbix de una versión principal y un sistema operativo específicos.

<OS> - el sistema operativo base. Valores admitidos:
alpine - Alpine Linux;
ltsc2019 - Windows 10 LTSC 2019 (solo agente);
ol - Oracle Linux;
ltsc2022 - Windows 11 LTSC 2022 (solo agente);
ubuntu - Ubuntu

X.X - la versión principal de Zabbix (es decir, 6.0, 7.0, 7.2).
zabbix-agent:alpine-7.0-latest
<OS>-X.X.* La última versión menor de un componente de Zabbix de una versión principal y un sistema operativo específicos.

<OS> - el sistema operativo base. Valores admitidos:
alpine - Alpine Linux;
ltsc2019 - Windows 10 LTSC 2019 (solo agente);
ol - Oracle Linux;
ltsc2022 - Windows 11 LTSC 2022 (solo agente);
ubuntu - Ubuntu

X.X - la versión principal de Zabbix (es decir, 6.0, 7.0, 7.2).

* - la versión menor de Zabbix
zabbix-agent:alpine-7.0.1

Archivos fuente

Las fuentes de los archivos Docker se almacenan en el repositorio oficial de Zabbix en GitHub donde puede seguir los últimos cambios de archivos o bifurcar el proyecto para crear sus propias imágenes.

Configuración inicial

Después de descargar las imágenes, inicie los contenedores ejecutando el comando docker run seguido de argumentos adicionales para especificar las variables de entorno y/o los puntos-de-montaje requeridos. A continuación, se proporcionan algunos ejemplos de configuración.

Zabbix no debe ejecutarse como PID1/como un proceso de inicio en contenedores en Zabbix 7.0.0-7.0.2.

Para habilitar la comunicación entre los componentes de Zabbix, algunos puertos, como 10051/TCP para el servidor Zabbix (trapper), 10050/TCP para el agente Zabbix, 162/UDP para las trampas SNMP y 80/TCP para la interfaz web de Zabbix, se expondrán a una máquina host. La lista completa de puertos predeterminados que utilizan los componentes de Zabbix está disponible en la página Requisitos. Para el servidor y el agente de Zabbix, el puerto predeterminado se puede cambiar configurando la variable de entorno ZBX_LISTENPORT.

Variables de entorno

Todas las imágenes de los componentes de Zabbix proporcionan variables de entorno para controlar la configuración. Las variables de entorno admitidas se enumeran en el repositorio del componente.

Estas variables de entorno son opciones de los archivos de configuración de Zabbix, pero con diferente definición de nomenclatura. Por ejemplo, ZBX_LOGSLOWQUERIES es igual a LogSlowQueries de los archivos de configuración del servidor Zabbix y del proxy Zabbix.

Algunas de las opciones de configuración no se pueden cambiar. Por ejemplo, "PIDFile" y "LogType".

Las siguientes variables de entorno son específicas de los componentes de Docker y no existen en los archivos de configuración de Zabbix:

Variable Componentes Valor predeterminado Descripción
DB_SERVER_HOST Servidor
Proxy
Interfaz web
mysql-server para MYSQL
postgres-server para PostgreSQL
IP o nombre DNS del servidor MySQL o PostgreSQL.
DB_SERVER_PORT Servidor
Proxy
Interfaz web
3306 para MYSQL
5432 para PostgreSQL
Puerto del servidor MySQL o PostgreSQL.
MYSQL_USER Servidor
Proxy
Interfaz web
zabbix Usuario de base de datos MySQL.
MYSQL_PASSWORD Servidor
Proxy
Interfaz web
zabbix Contraseña de la base de datos MySQL.
MYSQL_DATABASE Servidor
Proxy
Interfaz web
zabbix para el servidor Zabbix
'zabbix_proxy' para el proxy Zabbix
Nombre de la base de datos Zabbix.
POSTGRES_USER Servidor
Interfaz web
zabbix Usuario de base de datos PostgreSQL.
POSTGRES_PASSWORD Servidor
Interfaz web
zabbix Contraseña de la base de datos PostgreSQL.
POSTGRES_DB Servidor
Interfaz web
zabbix para el servidor Zabbix
'zabbix_proxy' para el proxy Zabbix
Nombre de la base de datos Zabbix.
PHP_TZ Interfaz web Europa/Riga Zona horaria en formato PHP. La lista completa de zonas horarias admitidas está disponible en php.net.
ZBX_SERVER_NAME Interfaz web Zabbix Docker Nombre de instalación de Zabbix visible en la esquina superior derecha de la interfaz web.
ZBX_JAVAGATEWAY_ENABLE Servidor
Proxy
false Permite la comunicación con la puerta de enlace Zabbix Java para recopilar comprobaciones relacionadas con Java.
ZBX_ENABLE_SNMP_TRAPS Servidor
Proxy
Habilita la función de captura SNMP. Requiere una instancia zabbix-snmptraps y un volumen compartido /var/lib/zabbix/snmptraps para el servidor Zabbix o el proxy Zabbix.
Volúmenes

Las imágenes permiten montar volúmenes utilizando los siguientes puntos de montaje:

Volumen Descripción
Agente de Zabbix
/etc/zabbix/zabbix_agentd.d El volumen permite incluir archivos *.conf y extender el agente Zabbix usando la función UserParameter
/var/lib/zabbix/modules El volumen permite cargar módulos adicionales y extender el agente Zabbix usando la función LoadModule
/var/lib/zabbix/enc El volumen se utiliza para almacenar archivos relacionados con TLS. Estos nombres de archivos se especifican utilizando las variables de entorno ZBX_TLSCAFILE, ZBX_TLSCRLFILE, ZBX_TLSKEY_FILE y ZBX_TLSPSKFILE
Servidor Zabbix
/usr/lib/zabbix/alertscripts El volumen se utiliza para scripts de alerta personalizados. Es el parámetro AlertScriptsPath en zabbix_server.conf
/usr/lib/zabbix/externalscripts El volumen es utilizado para verificaciones externas. Es el parámetro ExternalScripts en zabbix_server.conf
/var/lib/zabbix/modules El volumen permite cargar módulos adicionales y ampliar el servidor Zabbix usando la función LoadModule
/var/lib/zabbix/enc El volumen se utiliza para almacenar archivos relacionados con TLS. Estos nombres de archivos se especifican utilizando las variables de entorno ZBX_TLSCAFILE, ZBX_TLSCRLFILE, ZBX_TLSKEY_FILE y ZBX_TLSPSKFILE
/var/lib/zabbix/ssl/certs El volumen se utiliza como ubicación de los archivos de certificado de cliente SSL para la autenticación del cliente. Es el parámetro SSLCertLocation en zabbix_server.conf
/var/lib/zabbix/ssl/keys El volumen se utiliza como ubicación de archivos de clave privada SSL para la autenticación del cliente. Es el parámetro SSLKeyLocation en zabbix_server.conf
/var/lib/zabbix/ssl/ssl_ca El volumen se utiliza como ubicación de los archivos de la autoridad certificadora (CA) para la verificación del certificado del servidor SSL. Es el parámetro SSLCALocation en zabbix_server.conf
/var/lib/zabbix/snmptraps El volumen se utiliza como ubicación del archivo snmptraps.log. Podría compartirse mediante el contenedor zabbix-snmptraps y heredarse usando la opción volumes_from Docker al crear una nueva instancia del servidor Zabbix. La función de procesamiento de capturas SNMP podría habilitarse usando un volumen compartido y cambiando la variable de entorno ZBX_ENABLE_SNMP_TRAPS a 'true'
/var/lib/zabbix/mibs El volumen permite agregar nuevos archivos MIB. No admite subdirectorios, todos los MIB deben colocarse en /var/lib/zabbix/mibs
Proxy Zabbix
/usr/lib/zabbix/externalscripts El volumen es utilizado para verificaciones externas. Es el parámetro ExternalScripts en zabbix_proxy.conf
/var/lib/zabbix/db_data/ El volumen permite almacenar archivos de bases de datos en dispositivos externos. Compatible solo con proxy Zabbix con SQLite3
/var/lib/zabbix/modules El volumen permite cargar módulos adicionales y ampliar el servidor Zabbix usando la función LoadModule
/var/lib/zabbix/enc El volumen se utiliza para almacenar archivos relacionados con TLS. Estos nombres de archivos se especifican utilizando las variables de entorno ZBX_TLSCAFILE, ZBX_TLSCRLFILE, ZBX_TLSKEY_FILE y ZBX_TLSPSKFILE
/var/lib/zabbix/ssl/certs El volumen se utiliza como ubicación de los archivos de certificado de cliente SSL para la autenticación del cliente. Es el parámetro SSLCertLocation en zabbix_proxy.conf
/var/lib/zabbix/ssl/keys El volumen se utiliza como ubicación de archivos de clave privada SSL para la autenticación del cliente. Es el parámetro SSLKeyLocation en zabbix_proxy.conf
/var/lib/zabbix/ssl/ssl_ca El volumen se utiliza como ubicación de los archivos de la autoridad certificadora (CA) para la verificación del certificado del servidor SSL. Es el parámetro SSLCALocation en zabbix_proxy.conf
/var/lib/zabbix/snmptraps El volumen se utiliza como ubicación del archivo snmptraps.log. Podría ser compartido por el contenedor zabbix-snmptraps y heredado usando la opción volumes_from Docker al crear una nueva instancia del servidor Zabbix. La función de procesamiento de capturas SNMP podría habilitarse usando un volumen compartido y cambiando la variable de entorno ZBX_ENABLE_SNMP_TRAPS a 'true'
/var/lib/zabbix/mibs El volumen permite agregar nuevos archivos MIB. No admite subdirectorios, todos los MIB deben colocarse en /var/lib/zabbix/mibs
Interfaz web Zabbix basada en el servidor web Apache2
/etc/ssl/apache2 El volumen permite habilitar HTTPS para la interfaz web de Zabbix. El volumen debe contener los dos archivos ssl.crt y ssl.key preparados para conexiones SSL Apache2
Interfaz web Zabbix basada en servidor web Nginx
/etc/ssl/nginx El volumen permite habilitar HTTPS para la interfaz web de Zabbix. El volumen debe contener los dos archivos ssl.crt, ssl.key y dhparam.pem preparados para conexiones SSL de Nginx
Zabbix snmptraps
/var/lib/zabbix/snmptraps El volumen contiene el archivo de registro snmptraps.log cuyo nombre contiene las capturas SNMP recibidas
/var/lib/zabbix/mibs El volumen permite agregar nuevos archivos MIB. No admite subdirectorios, todos los MIB deben colocarse en /var/lib/zabbix/mibs

Para obtener información adicional, consulte los repositorios oficiales de Zabbix en Docker. Hub.

Ejemplos de uso

** Ejemplo 1 **

El ejemplo demuestra cómo ejecutar el servidor Zabbix con soporte para la base de datos MySQL, interfaz web de Zabbix basada en el servidor web Nginx y Zabbix Java gateway.

1. Crear una red dedicada para los contenedores componentes de Zabbix:

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

2. Iniciar la instancia vacía del servidor 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.0-oracle \
             --character-set-server=utf8 --collation-server=utf8_bin \
             --default-authentication-plugin=mysql_native_password

3. Iniciar la instancia Java gateway de Zabbix

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

4. Iniciar la instancia del servidor Zabbix y enlazar con la instancia creada del servidor MySQL

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-7.0-latest

5. Iniciar la interfaz web de Zabbix y enlazar la instancias creadas del servidor MySQL y del servidor Zabbix.

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-7.0-latest

Ejemplo 2

El ejemplo demuestra cómo ejecutar el servidor Zabbix con soporte a la base de datos PostgreSQL, interfaz web de Zabbix basada en el servidor web Nginx y capacidad de captura SNMP.

1. Crear una red dedicada para los contenedores componentes de Zabbix:

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

2. Iniciar la instancia vacía del servidor 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. Iniciar la instancia snmptraps de Zabbix

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-7.0-latest

4. Iniciar la instancia del servidor Zabbix y enlazar con la instancia creada del servidor PostgreSQL

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-7.0-latest

5. Iniciar la interfaz web de Zabbix y enlace la instancias creadas del servidor PostgreSQL y del servidor Zabbix

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-7.0-latest

Ejemplo 3

El ejemplo demuestra cómo ejecutar el servidor Zabbix con soporte a la base de datos MySQL, interfaz web de Zabbix basada en el servidor web Nginx y Zabbix Java gateway usando podman en Red Hat 8.

1. Crear un nuevo pod llamado zabbix y exponer los puertos (interfaz web, servidor de captura Zabbix):

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

2. (opcional) Iniciar el contenedor del agente Zabbix en el 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-70:latest

3. Crear el directorio./mysql/ en el equipo e iniciar el servidor Oracle MySQL 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

4. Iniciar el contenedor del servidor Zabbix:

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-70

5. Iniciar el contenedor Java Gateway de Zabbix:

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

6. Iniciar el contenedor de la interfaz web de 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-70

El pod zabbix expone el puerto 80/TCP (HTTP) a la máquina anfitriona desde el 8080/TCP del contenedor zabbix-web-mysql.

Componente acoplable

Alternativamente, Zabbix se puede instalar usando el complemento Docker Compose. Los archivos de redacción para definir y ejecutar componentes Zabbix de múltiples contenedores están disponibles en el repositorio Zabbix Docker oficial en GitHub.

Los archivos de composición oficiales de Zabbix son compatibles con la versión 3 de Docker Compose.

Estos archivos de redacción se agregan como ejemplos; están sobrecargados. Por ejemplo, contienen servidores proxy compatibles con MySQL y SQLite3.

Para obtener archivos de redacción de Docker proporcionados por Zabbix, clone el repositorio:

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

Cambie a la versión requerida:

git checkout 7.0

Redacte archivos de configuración y cree e inicie contenedores:

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

Reemplace docker-compose_v3_alpine_mysql_latest.yaml en el comando anterior con el archivo de configuración requerido.

Las siguientes opciones están disponibles:

Nombre de archivo Descripción
docker-compose_v3_alpine_mysql_latest.yaml El archivo de redacción ejecuta la última versión de los componentes Zabbix 7.0 en Alpine Linux con soporte de base de datos MySQL.
docker-compose_v3_alpine_mysql_local.yaml El archivo de redacción construye localmente la última versión de Zabbix 7.0 y ejecuta componentes de Zabbix en Alpine Linux con soporte de base de datos MySQL.
docker-compose_v3_alpine_pgsql_latest.yaml El archivo de redacción ejecuta la última versión de los componentes Zabbix 7.0 en Alpine Linux con soporte de base de datos PostgreSQL.
docker-compose_v3_alpine_pgsql_local.yaml El archivo de redacción construye localmente la última versión de Zabbix 7.0 y ejecuta componentes de Zabbix en Alpine Linux con soporte de base de datos PostgreSQL.
docker-compose_v3_ol_mysql_latest.yaml El archivo de redacción ejecuta la última versión de los componentes Zabbix 7.0 en Oracle Linux con soporte de base de datos MySQL.
docker-compose_v3_ol_mysql_local.yaml El archivo de redacción construye localmente la última versión de Zabbix 7.0 y ejecuta componentes de Zabbix en Oracle Linux con soporte de base de datos MySQL.
docker-compose_v3_ol_pgsql_latest.yaml El archivo de redacción ejecuta la última versión de los componentes Zabbix 7.0 en Oracle Linux con soporte de base de datos PostgreSQL.
docker-compose_v3_ol_pgsql_local.yaml El archivo de redacción construye localmente la última versión de Zabbix 7.0 y ejecuta componentes de Zabbix en Oracle Linux con soporte de base de datos PostgreSQL.
docker-compose_v3_ubuntu_mysql_latest.yaml El archivo de redacción ejecuta la última versión de los componentes de Zabbix 7.0 en Ubuntu 20.04 con soporte de base de datos MySQL.
docker-compose_v3_ubuntu_mysql_local.yaml El archivo de redacción construye localmente la última versión de Zabbix 7.0 y ejecuta componentes de Zabbix en Ubuntu 20.04 con soporte de base de datos MySQL.
docker-compose_v3_ubuntu_pgsql_latest.yaml El archivo de redacción ejecuta la última versión de los componentes de Zabbix 7.0 en Ubuntu 20.04 con soporte de base de datos PostgreSQL.
docker-compose_v3_ubuntu_pgsql_local.yaml El archivo de redacción construye localmente la última versión de Zabbix 7.0 y ejecuta componentes de Zabbix en Ubuntu 20.04 con soporte de base de datos PostgreSQL.

Almacenamiento

Los archivos de composición están configurados para admitir el almacenamiento local en una máquina anfitriona. Docker Compose creará un directorio zbx_env en la carpeta con el archivo de composición cuando ejecuta los componentes de Zabbix usando el archivo de composición. El directorio contendrá la misma estructura que la descrita anteriormente en la Sección Volúmenes y el directorio para el almacenamiento de la base de datos.

También hay volúmenes en modo de solo lectura para los archivos /etc/localtime y /etc/timezone.

Variables de entorno

Los archivos de variables tienen la siguiente estructura de nombres: .env_<tipo de componente> y se encuentran en el directorio env_vars. Consulte las variables de entorno para obtener detalles sobre los nombres de las variables y la selección disponible.

Ejemplos

Ejemplo 1

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

El comando descargará las últimas imágenes de Zabbix 7.0 para cada componente de Zabbix y las ejecutará en modo desconectado.

No olvide descargar archivos .env_<tipo de componente> del repositorio oficial de Zabbix de github.com con los archivos de redacción.

Ejemplo 2

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

El comando descargará la imagen base Ubuntu 22.04 (jammy), luego compilará los componentes Zabbix 7.0 localmente y los ejecutará en modo desconectado.