Instalación desde contenedores

Descripción general

Esta página describe cómo desplegar Zabbix usando Docker o Docker Compose.

Docker Compose es la forma más rápida de desplegar Zabbix. Lee un archivo de configuración e inicia automáticamente todos los contenedores que componen una instalación completa de Zabbix, en el orden correcto.

Docker (despliegue manual) logra el mismo resultado desplegando cada componente paso a paso.

Requisitos previos

Antes de comenzar, asegúrese de que Docker (1.12.0 o posterior) esté instalado en su sistema. Si no es así, siga la guía de instalación de Docker. Para la implementación con Docker Compose, también se requiere Docker Compose (2.24.0 o posterior).

Algunos componentes de Zabbix requieren que determinados puertos estén abiertos en el host que ejecuta Docker (por ejemplo, 10051/TCP para Zabbix server, 162/UDP para traps SNMP). Consulte Requisitos para ver una lista completa de los puertos utilizados por los componentes de Zabbix. Para Zabbix server y agent, el puerto predeterminado puede cambiarse configurando la variable de entorno ZBX_LISTENPORT en el contenedor correspondiente.

Imágenes Docker disponibles

Zabbix proporciona una imagen Docker para cada componente de Zabbix, todas publicadas en Docker Hub. Cada imagen se utiliza para crear un contenedor que ejecuta ese componente.

Componente de Zabbix Imagen Docker
agent zabbix/zabbix-agent
Agent 2 zabbix/zabbix-agent2
server (MySQL) zabbix/zabbix-server-mysql
server (PostgreSQL) zabbix/zabbix-server-pgsql
Interfaz web (Apache + MySQL) zabbix/zabbix-web-apache-mysql
Interfaz web (Apache + PostgreSQL) zabbix/zabbix-web-apache-pgsql
Interfaz web (Nginx + MySQL) zabbix/zabbix-web-nginx-mysql
Interfaz web (Nginx + PostgreSQL) zabbix/zabbix-web-nginx-pgsql
proxy (SQLite3) zabbix/zabbix-proxy-sqlite3
proxy (MySQL) zabbix/zabbix-proxy-mysql
Java gateway zabbix/zabbix-java-gateway
Servicio web zabbix/zabbix-web-service
Trampas SNMP zabbix/zabbix-snmptraps

Para utilizar trampas SNMP, el contenedor de trampas SNMP debe compartir un volumen con el contenedor de Zabbix server o proxy (consulte cómo usar esta imagen en Docker Hub y el ejemplo a continuación).

Todas las imágenes de componentes de Zabbix en Docker Hub se basan en las últimas versiones principales de los sistemas operativos compatibles. Estas imágenes se reconstruyen automáticamente cuando se actualizan las imágenes del sistema operativo subyacente.

Etiquetas de imagen

Cada imagen admite etiquetas para seleccionar el sistema operativo base y la versión de Zabbix:

zabbix/<image>:<os>-<version>

Valores <os> admitidos:

  • alpine - Alpine Linux
  • ubuntu - Ubuntu
  • centos - CentOS Stream
  • ol - Oracle Linux
  • ltsc2022 - Windows 11 LTSC 2022 (solo Zabbix agent)

Valores <version> admitidos:

  • latest - La última versión estable de Zabbix en Alpine Linux
  • <os>-latest - La última versión estable de Zabbix en el SO seleccionado
  • <os>-trunk - La compilación de desarrollo (nightly) más reciente en el SO seleccionado
  • <os>-X.X-latest - La última versión menor de Zabbix de una versión mayor específica de Zabbix en el SO seleccionado
  • <os>-X.X.* - Una versión menor específica de Zabbix en el SO seleccionado

Ejemplos:

# Último Zabbix proxy estable (SQLite3) en Alpine Linux:
docker pull zabbix/zabbix-proxy-sqlite3:latest

# Último Zabbix proxy estable (SQLite3) en Ubuntu:
docker pull zabbix/zabbix-proxy-sqlite3:ubuntu-latest

# Compilación de desarrollo (nightly) más reciente de Zabbix server (MySQL) en Ubuntu:
docker pull zabbix/zabbix-server-mysql:ubuntu-trunk

# Última versión menor 8.0 de Zabbix server (MySQL) en Alpine Linux:
docker pull zabbix/zabbix-server-mysql:alpine-8.0-latest

# Versión 8.0.1 de Zabbix server (MySQL) en Alpine Linux:
docker pull zabbix/zabbix-server-mysql:alpine-8.0.1

Docker Compose

Docker Compose es la forma más rápida de implementar Zabbix. Lee un archivo de configuración (archivo Compose) y gestiona toda la configuración: descarga las imágenes de Docker, crea una red interna entre los contenedores, configura el almacenamiento, inicializa la base de datos e inicia todo en el orden correcto.

El repositorio de Dockerfiles oficiales de Zabbix proporciona archivos Docker Compose listos para usar y un sistema de configuración basado en .env compatible con distintos sistemas operativos, backends de bases de datos y configuraciones de los componentes de Zabbix.

1. Clone el repositorio, acceda a él y cambie a la versión 8.0:

git clone https://github.com/zabbix/zabbix-docker.git
cd zabbix-docker
git checkout 8.0

2. (Opcional) Personalice la implementación con variables de entorno. Este paso se puede omitir para utilizar la configuración predeterminada.

3. Implemente la configuración predeterminada: el server de Zabbix, la interfaz web (ejecutada en NGINX) y un backend de base de datos (MySQL o PostgreSQL), cada uno ejecutándose en su propio contenedor en Alpine Linux.

# Con MySQL como base de datos:
docker compose -f ./compose.yaml up -d

# Con PostgreSQL como base de datos:
docker compose -f ./compose_pgsql.yaml up -d

Una vez que los contenedores estén activos y en ejecución (normalmente en un plazo de 1 a 3 minutos), el server de Zabbix se inicia y la interfaz web estará disponible para iniciar sesión.

Use docker compose ps para comprobar el estado de los contenedores. Todos los contenedores (excepto el contenedor zabbix-docker-server-db-init-1) deben tener el estado Up. Si alguno muestra Exited, compruebe sus registros para detectar errores con docker logs -f <container-name>.

Variables de entorno

El comportamiento de Docker Compose y la configuración de los componentes de Zabbix se pueden personalizar mediante variables de entorno.

Las variables de nivel de Compose (definidas en el archivo .env) controlan qué imágenes de Docker, puertos y rangos de IP de red se utilizan. Puede usar estas variables en línea antes del comando docker compose o editar el archivo .env.

Por ejemplo, el siguiente comando implementa una configuración completa de Zabbix con varios contenedores utilizando una imagen basada en Ubuntu (en lugar de Alpine Linux, que es la opción predeterminada) y expone la interfaz web mediante NGINX en puertos HTTP (8282) y HTTPS (8443) personalizados:

OS=ubuntu \
ZABBIX_WEB_NGINX_HTTP_PORT=8282 \
ZABBIX_WEB_NGINX_HTTPS_PORT=8443 \
docker compose -f ./compose.yaml up -d

Las variables de nivel de componente (definidas en los archivos env_vars/.env_<component>) controlan la configuración de los componentes de Zabbix. Edite el archivo .env_<component> correspondiente antes de ejecutar el comando docker compose.

Por ejemplo, puede ajustar el número de pollers pasivos y la configuración de la caché del server de Zabbix, así como configurar la zona horaria de la interfaz web, editando las siguientes variables:

# env_vars/.env_srv
ZBX_STARTPOLLERS=20
ZBX_CACHESIZE=64M
ZBX_HISTORYCACHESIZE=32M

# env_vars/.env_web
PHP_TZ=Europe/Paris

Las variables de entorno de nivel de componente corresponden a los parámetros de configuración de los componentes de Zabbix, pero utilizan un estilo de nomenclatura diferente (por ejemplo, ZBX_STARTPOLLERS corresponde a StartPollers). Algunas variables son específicas de Docker y algunos parámetros de configuración no se pueden cambiar (por ejemplo, PIDFile y LogType). Al utilizar variables de entorno, consulte la sección Variables de entorno de la descripción de la imagen de Docker de cada componente en Docker Hub.

Volúmenes

Docker Compose almacena los datos persistentes en el directorio zbx_env/, creado junto al archivo Compose. Este directorio conserva los datos de los componentes entre reinicios y actualizaciones de los contenedores.

El contenido de zbx_env/ está predefinido para la imagen de cada componente. Por ejemplo:

Para obtener más información sobre cada volumen, consulte la sección Allowed volumes en la descripción de la imagen de Docker de cada componente en Docker Hub.

Makefile

El repositorio de Dockerfiles de Zabbix también proporciona un Makefile como acceso directo para las tareas comunes de Docker Compose. En lugar de utilizar el comando completo docker compose, puede usar comandos make más cortos (ejecute make help para ver las opciones disponibles):

# Implementación predeterminada (server de Zabbix, interfaz web, MySQL, todo en Alpine Linux)
make up

# Implementación personalizada (server de Zabbix, interfaz web con puertos NGINX personalizados, PostgreSQL, todo en Ubuntu)
make up \
  OS=ubuntu \
  DB=pgsql \
  ZABBIX_WEB_NGINX_HTTP_PORT=8282 \
  ZABBIX_WEB_NGINX_HTTPS_PORT=8443

Al detener o eliminar contenedores, especifique siempre el mismo tipo de base de datos que se implementó (por ejemplo, make down DB=pgsql).

De forma predeterminada, make up inicia solo un conjunto mínimo de servicios (server de Zabbix, interfaz web y base de datos). Esto mantiene la configuración ligera y evita iniciar componentes que podrían no ser necesarios. Para incluir componentes adicionales, puede utilizar los siguientes perfiles de Compose:

# Implementación predeterminada + Zabbix agent, Java gateway, servicio web y traps SNMP:
make up COMPOSE_PROFILES=full

# COMPOSE_PROFILES=full + proxy de Zabbix (MySQL y SQLite3):
make up COMPOSE_PROFILES=all

Docker (implementación manual)

Utilice la implementación manual cuando desee desplegar Zabbix paso a paso, ejecutar componentes individuales, integrarlos con un entorno existente o usar un runtime de contenedores alternativo como Podman.

Por ejemplo, para desplegar un proxy de Zabbix, ejecute el siguiente comando:

docker run --name zabbix-proxy-sqlite3 \
  -e ZBX_SERVER_HOST=192.0.2.1 \
  -e ZBX_PROXYMODE=0 \
  -e ZBX_HOSTNAME=zabbix-proxy-sqlite3 \
  -v zabbix-proxy-data:/var/lib/zabbix/db_data \
  --init \
  -d \
  zabbix/zabbix-proxy-sqlite3:alpine-8.0-latest

Este comando:

  • Descarga la imagen de Docker zabbix/zabbix-proxy-sqlite3:alpine-8.0-latest.

  • Crea e inicia un contenedor zabbix-proxy-sqlite3 basado en la imagen de Docker (con las opciones --init y -d).

  • Configura el parámetro Server del proxy de Zabbix mediante la variable de entorno ZBX_SERVER_HOST. Este parámetro especifica la dirección IP del server de Zabbix desde el cual el proxy recuperará los datos de configuración y al cual enviará los datos recopilados. Tenga en cuenta que otras variables necesarias para el funcionamiento del proxy activo usan valores predeterminados y pueden omitirse.

Las variables de entorno corresponden a los parámetros de configuración de los componentes de Zabbix mediante un estilo de nomenclatura diferente (por ejemplo, ZBX_SERVER_HOST corresponde a Server). Algunas variables son específicas de Docker, y algunos parámetros de configuración no se pueden cambiar (por ejemplo, PIDFile y LogType). Al usar variables de entorno, consulte la sección Environment variables en la descripción de la imagen de Docker de cada componente en Docker Hub.

  • Conecta una ubicación de almacenamiento administrada por Docker (por ejemplo, /var/lib/docker/volumes/zabbix-proxy-data/) con el directorio /var/lib/zabbix del contenedor, de modo que los datos del proxy de Zabbix se almacenen de forma permanente, incluso si el contenedor se elimina.

Para obtener más información sobre cada volumen, consulte la sección Allowed volumes en la descripción de la imagen de Docker de cada componente en Docker Hub.

Después de desplegar el contenedor del proxy de Zabbix, puede continuar con añadir el proxy en su interfaz web de Zabbix y configurar hosts para que sean monitorizados por este proxy.

Los ejemplos siguientes cubren tres escenarios adicionales de implementación:

  • server de Zabbix (MySQL) con Java gateway
  • server de Zabbix (PostgreSQL) con trampas SNMP
  • server de Zabbix (MySQL) con Java gateway en RHEL 8–10

Para más ejemplos, consulte la descripción de la imagen de Docker de cada componente en Docker Hub.

Implementar Zabbix server (MySQL) con Java gateway

Este ejemplo muestra cómo implementar un Zabbix server con un backend MySQL, un Java gateway para la supervisión de JMX y una interfaz web basada en NGINX.

1. Cree una red Docker dedicada para que todos los contenedores de los componentes de Zabbix puedan comunicarse entre sí mediante el nombre del contenedor:

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

2. Ejecute un contenedor vacío de MySQL server (sustituya zabbix_pwd y root_pwd por contraseñas seguras y utilice esos valores en los pasos siguientes):

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=utf8mb4 --collation-server=utf8mb4_bin

3. Siga los registros de MySQL y espere hasta que MySQL esté listo para aceptar conexiones (utilice Ctrl+C para salir de los registros):

docker logs -f mysql-server

# ... [Server] /usr/sbin/mysqld: ready for connections. ...

4. Ejecute un contenedor de 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

5. Habilite log_bin_trust_function_creators en el contenedor de MySQL server. Esto relaja temporalmente las restricciones de seguridad sobre las funciones almacenadas; la configuración se deshabilitará en pasos posteriores. Permite que el usuario de la base de datos de Zabbix cree funciones almacenadas sin el privilegio SUPER, que MySQL requiere cuando el registro binario está habilitado (de forma predeterminada desde MySQL 8.0). Ejecute el siguiente comando:

docker exec -it mysql-server mysql -u root -p'root_pwd' \
  -e "SET GLOBAL log_bin_trust_function_creators = 1;"

6. Ejecute un contenedor de Zabbix server y vincúlelo a los contenedores de Java Gateway y MySQL server:

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 ZBX_JAVAGATEWAY="zabbix-java-gateway" \
  --network=zabbix-net \
  -p 10051:10051 \
  --restart unless-stopped \
  --init \
  -d zabbix/zabbix-server-mysql:alpine-8.0-latest

7. Siga los registros de Zabbix server y espere hasta que Zabbix server haya terminado de inicializar el esquema de la base de datos (utilice Ctrl+C para salir de los registros):

docker logs -f zabbix-server-mysql

# ... [info]: ** Creating 'zabbix' schema in MySQL
# ... [info]: ** Database schema successfully created!

8. Deshabilite log_bin_trust_function_creators en el contenedor de MySQL server. Esto vuelve a aplicar la restricción de seguridad que impide a los usuarios que no tienen SUPER crear funciones almacenadas. Ejecute el siguiente comando:

docker exec -it mysql-server mysql -u root -p'root_pwd' \
  -e "SET GLOBAL log_bin_trust_function_creators = 0;"

9. Ejecute un contenedor de web frontend de Zabbix y vincúlelo a los contenedores de Zabbix server y MySQL 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 PHP_TZ="Europe/Riga" \
  --network=zabbix-net \
  -p 80:8080 \
  --restart unless-stopped \
  -d zabbix/zabbix-web-nginx-mysql:alpine-8.0-latest

Una vez que los contenedores estén activos y en ejecución, Zabbix server se iniciará y el web frontend estará disponible para iniciar sesión.

Utilice docker ps para comprobar el estado de los contenedores. Todos los contenedores deben mostrar el estado Up. Si alguno muestra Exited, compruebe sus registros para detectar errores con docker logs -f <container-name>.

Implementar Zabbix server (PostgreSQL) con traps SNMP

Este ejemplo muestra cómo implementar un Zabbix server con un backend PostgreSQL, traps SNMP y una interfaz web basada en NGINX.

1. Cree una red Docker dedicada para que todos los contenedores de los componentes de Zabbix puedan comunicarse entre sí mediante el nombre del contenedor:

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

2. Ejecute un contenedor vacío de PostgreSQL server (sustituya zabbix_pwd por una contraseña segura y utilice ese valor en los pasos siguientes):

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. Ejecute un contenedor de traps SNMP 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-8.0-latest

4. Ejecute un contenedor de Zabbix server y vincúlelo a los contenedores de PostgreSQL server y traps SNMP:

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 \
  --init \
  -d zabbix/zabbix-server-pgsql:alpine-8.0-latest

5. Siga los registros de Zabbix server y espere hasta que Zabbix server haya terminado de inicializar el esquema de la base de datos (utilice Ctrl+C para salir de los registros):

docker logs -f zabbix-server-pgsql

# ... [info]: ** Creating 'zabbix' schema in PostgreSQL
# ... [info]: ** Database schema successfully created!

6. Ejecute un contenedor de web frontend de Zabbix y vincúlelo a los contenedores de Zabbix server y PostgreSQL server:

docker run --name zabbix-web-nginx-pgsql -t \
  -e ZBX_SERVER_HOST="zabbix-server-pgsql" \
  -e DB_SERVER_HOST="postgres-server" \
  -e POSTGRES_DB="zabbix" \
  -e POSTGRES_USER="zabbix" \
  -e POSTGRES_PASSWORD="zabbix_pwd" \
  -e PHP_TZ="Europe/Riga" \
  --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

Una vez que los contenedores estén activos y en ejecución, Zabbix server se iniciará y el web frontend estará disponible para iniciar sesión.

Utilice docker ps para comprobar el estado de los contenedores. Todos los contenedores deben mostrar el estado Up. Si alguno muestra Exited, compruebe sus registros para detectar errores con docker logs -f <container-name>.

Implementar Zabbix server (MySQL) con Java gateway en RHEL 8–10

Este ejemplo muestra cómo implementar un Zabbix server con un backend MySQL, un Java gateway para la supervisión de JMX y una interfaz web basada en NGINX, todo ello ejecutándose en Red Hat Enterprise Linux 8, 9 o 10.

En Red Hat Enterprise Linux, el runtime de contenedores recomendado es Podman en lugar de Docker. Podman funciona de forma similar a Docker, pero no requiere un servicio en segundo plano ejecutándose como root, por lo que se adapta mejor a los entornos Red Hat.

1. Cree un pod nuevo con el nombre zabbix y exponga los puertos para el web frontend de Zabbix y el trapper de Zabbix server:

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

2. (Opcional) Ejecute un contenedor de Zabbix agent 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-80:latest

3. Cree un directorio ./mysql/ en el host RHEL:

mkdir -p ./mysql

4. Ejecute un contenedor vacío de MySQL server (sustituya zabbix_pwd y root_pwd por contraseñas seguras y utilice esos valores en los pasos siguientes):

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=utf8mb4 --collation-server=utf8mb4_bin

5. Siga los registros de MySQL y espere hasta que MySQL esté listo para aceptar conexiones (utilice Ctrl+C para salir de los registros):

podman logs -f mysql-server

# ... [Server] /usr/sbin/mysqld: ready for connections. ...

6. Ejecute un contenedor de Zabbix Java gateway:

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

7. Habilite log_bin_trust_function_creators en el contenedor de MySQL server. Esto relaja temporalmente las restricciones de seguridad sobre las funciones almacenadas; la configuración se deshabilitará en pasos posteriores. Permite que el usuario de la base de datos de Zabbix cree funciones almacenadas sin el privilegio SUPER, que MySQL requiere cuando el registro binario está habilitado (de forma predeterminada desde MySQL 8.0). Ejecute el siguiente comando:

podman exec -it mysql-server mysql -u root -p'root_pwd' \
  -e "SET GLOBAL log_bin_trust_function_creators = 1;"

8. Ejecute un contenedor de Zabbix server y vincúlelo a los contenedores de Java Gateway y MySQL 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 ZBX_JAVAGATEWAY="127.0.0.1" \
  --restart=always \
  --init \
  --pod=zabbix \
  -d registry.connect.redhat.com/zabbix/zabbix-server-mysql-80

9. Siga los registros de Zabbix server y espere hasta que Zabbix server haya terminado de inicializar el esquema de la base de datos (utilice Ctrl+C para salir de los registros):

podman logs -f zabbix-server-mysql

# ... [info]: ** Creating 'zabbix' schema in MySQL
# ... [info]: ** Database schema successfully created!

10. Deshabilite log_bin_trust_function_creators en el contenedor de MySQL server. Esto vuelve a aplicar la restricción de seguridad que impide a los usuarios que no tienen SUPER crear funciones almacenadas. Ejecute el siguiente comando:

podman exec -it mysql-server mysql -u root -p'root_pwd' \
  -e "SET GLOBAL log_bin_trust_function_creators = 0;"

11. Ejecute un contenedor de web frontend de Zabbix y vincúlelo a los contenedores de Zabbix server y MySQL server:

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 PHP_TZ="Europe/Riga" \
  --restart=always \
  --pod=zabbix \
  -d registry.connect.redhat.com/zabbix/zabbix-web-mysql-80

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

Una vez que los contenedores estén activos y en ejecución, Zabbix server se iniciará y el web frontend estará disponible para iniciar sesión.

Utilice docker ps para comprobar el estado de los contenedores. Todos los contenedores deben mostrar el estado Up. Si alguno muestra Exited, compruebe sus registros para detectar errores con docker logs -f <container-name>.