El despliegue de Zabbix Server 7.0 LTS sobre Red Hat Enterprise Linux (RHEL) 9 consiste en instalar y orquestar el stack de monitoreo empresarial compuesto por el daemon zabbix-server, el backend de base de datos MySQL, el frontend web PHP servido mediante Nginx y PHP-FPM, y el agente zabbix-agent2. Este procedimiento se ejecuta mediante el repositorio oficial de paquetes RPM de Zabbix, la creación del esquema relacional con codificación utf8mb4_bin y la configuración de los parámetros de conexión en zabbix_server.conf. El objetivo es establecer una plataforma de observabilidad centralizada, altamente escalable y con recolección de métricas por polling y trapping, capaz de monitorear disponibilidad, rendimiento e integridad de servidores, servicios de red, dispositivos SNMP y aplicaciones dentro de la infraestructura base del centro de datos.
Arquitectura del stack Zabbix Server
Zabbix es una plataforma de monitoreo open source de nivel empresarial licenciada bajo AGPLv3 a partir de la rama 7.0 LTS. Su arquitectura desacopla cuatro componentes lógicos que pueden coexistir en un mismo host para entornos base o distribuirse para alta disponibilidad:
- Zabbix Server: proceso central (
zabbix-server) que procesa datos, evalúa disparadores (triggers), genera eventos y ejecuta acciones y notificaciones. - Base de datos: capa de persistencia (MySQL 8.0, MariaDB o PostgreSQL) que almacena configuración, métricas históricas y tendencias.
- Frontend web: interfaz PHP servida por Nginx + PHP-FPM para configuración, visualización de dashboards y gestión de la topología.
- Zabbix Agent 2: agente residente (
zabbix-agent2) para la recolección de métricas locales del sistema operativo mediante plugins nativos en Go.
Requisitos previos de la infraestructura base
Requisitos de software y versiones soportadas
Verifique que el entorno cumpla la matriz de compatibilidad de Zabbix 7.0 LTS antes de iniciar la instalación:
- Sistema operativo: RHEL 9, Rocky Linux 9, AlmaLinux 9 u Oracle Linux 9 (arquitectura x86_64).
- Base de datos: MySQL 8.0.x o superior (también compatible con MariaDB 10.5+ o PostgreSQL 13+).
- Servidor web: Nginx con PHP-FPM.
- PHP: versión 8.0 o superior con las extensiones requeridas (gd, bcmath, mbstring, xml, ldap, mysqlnd).
- Acceso: usuario con privilegios
rootosudo.
Preparación del sistema operativo
A continuación, actualice los paquetes del sistema y confirme la versión de la distribución ejecutando los siguientes comandos en la terminal como usuario root:
cat /etc/redhat-release
dnf update -y
Paso 1: Configuración del repositorio oficial de Zabbix
El primer paso consiste en registrar el repositorio de paquetes RPM oficial de Zabbix 7.0 para RHEL 9 y limpiar la caché de metadatos de DNF. Ejecute los siguientes comandos:
rpm -Uvh https://repo.zabbix.com/zabbix/7.0/rhel/9/x86_64/zabbix-release-latest-7.0.el9.noarch.rpm
dnf clean all
El paquete zabbix-release instala la definición del repositorio en /etc/yum.repos.d/zabbix.repo, habilitando la resolución de dependencias directamente desde los servidores oficiales de la marca.
Paso 2: Instalación de los paquetes del servidor, frontend y agente
A continuación, instale el conjunto de paquetes que componen el stack completo: el servidor con soporte MySQL, el frontend web, la configuración de Nginx, los scripts SQL de inicialización y el agente. Ejecute el siguiente comando:
dnf install zabbix-server-mysql zabbix-web-mysql zabbix-nginx-conf zabbix-sql-scripts zabbix-agent2
Opcionalmente, instale los plugins adicionales de Zabbix Agent 2 para ampliar la telemetría hacia bases de datos y servicios externos:
dnf install zabbix-agent2-plugin-mongodb zabbix-agent2-plugin-mssql zabbix-agent2-plugin-postgresql
Paso 3: Creación y configuración de la base de datos MySQL
Con MySQL 8.0 en ejecución, cree la base de datos y el usuario dedicado de Zabbix. La codificación debe ser obligatoriamente utf8mb4 con collation utf8mb4_bin. Acceda a la consola de MySQL como root:
mysql -uroot -p
Dentro de la consola de MySQL, ejecute las siguientes sentencias SQL. Reemplace el valor password por una contraseña robusta:
create database zabbix character set utf8mb4 collate utf8mb4_bin;
create user zabbix@localhost identified by 'password';
grant all privileges on zabbix.* to zabbix@localhost;
set global log_bin_trust_function_creators = 1;
quit;
El parámetro log_bin_trust_function_creators se habilita temporalmente para permitir la importación de funciones almacenadas cuando el binary logging está activo.
Importación del esquema inicial
A continuación, importe el esquema y los datos iniciales dentro de la base de datos zabbix. Ejecute el siguiente comando e ingrese la contraseña del usuario zabbix cuando se solicite:
zcat /usr/share/zabbix-sql-scripts/mysql/server.sql.gz | mysql --default-character-set=utf8mb4 -uzabbix -p zabbix
Una vez completada la importación, deshabilite nuevamente el parámetro por seguridad. Acceda a MySQL como root y ejecute:
mysql -uroot -p
set global log_bin_trust_function_creators = 0;
quit;
Paso 4: Configuración del Zabbix Server
Edite el archivo de configuración principal del servidor para declarar la credencial de conexión a la base de datos. Abra el archivo con un editor de texto:
vi /etc/zabbix/zabbix_server.conf
Localice la directiva DBPassword y asigne la contraseña definida en el Paso 3. La línea debe quedar de la siguiente forma:
DBPassword=password
Verifique además que las directivas DBName=zabbix y DBUser=zabbix coincidan con los valores creados. Guarde y cierre el archivo.
Paso 5: Configuración del frontend web (Nginx + PHP-FPM)
Configure el bloque de servidor de Nginx que sirve el frontend PHP de Zabbix. Edite el archivo de configuración:
vi /etc/nginx/conf.d/zabbix.conf
Descomente y ajuste las directivas listen y server_name con el puerto y el FQDN de su servidor. Por ejemplo:
listen 80;
server_name zabbix.midominio.com;
Guarde el archivo. La zona horaria de PHP se gestiona automáticamente mediante el paquete zabbix-nginx-conf, pero puede validarla en /etc/php-fpm.d/zabbix.conf ajustando la directiva php_value[date.timezone] según su región (por ejemplo, America/Mexico_City).
Paso 6: Inicio y habilitación de servicios
Inicie y habilite todos los daemons del stack para que arranquen automáticamente con el sistema. Ejecute los siguientes comandos:
systemctl restart zabbix-server zabbix-agent2 nginx php-fpm
systemctl enable zabbix-server zabbix-agent2 nginx php-fpm
Confirme que el servidor Zabbix se encuentre activo y sin errores consultando su estado:
systemctl status zabbix-server
Paso 7: Configuración de firewalld y SELinux
Abra los puertos requeridos en el firewall para el tráfico web y la comunicación de Zabbix. El puerto 10051/TCP corresponde al trapper del servidor y el 10050/TCP al agente. Ejecute los siguientes comandos:
firewall-cmd --permanent --add-service=http
firewall-cmd --permanent --add-service=https
firewall-cmd --permanent --add-port=10051/tcp
firewall-cmd --permanent --add-port=10050/tcp
firewall-cmd --reload
En sistemas con SELinux en modo enforcing, instale la política oficial de Zabbix y habilite el booleano que permite a Nginx conectarse a la red. Ejecute:
dnf install zabbix-selinux-policy
setsebool -P httpd_can_connect_zabbix on
setsebool -P httpd_can_network_connect_db on
Paso 8: Asistente de instalación web y primer acceso
Finalice el despliegue mediante el asistente de configuración del frontend. Siga esta secuencia:
- Abra un navegador y acceda a la URL del frontend:
http://zabbix.midominio.com/. - En la pantalla de bienvenida, seleccione el idioma y presione Next step.
- Verifique que todos los pre-requisitos (Prerequisites) muestren el estado OK.
- Ingrese los parámetros de conexión a la base de datos: host
localhost, nombrezabbix, usuariozabbixy su contraseña. - Defina el nombre del servidor Zabbix y la zona horaria por defecto.
- Confirme el resumen de configuración y finalice la instalación.
- Inicie sesión con las credenciales predeterminadas: usuario
Adminy contraseñazabbix.
Verificación y hardening post-instalación
Una vez dentro de la interfaz, ejecute las siguientes acciones de aseguramiento para llevar la plataforma a un estado productivo:
- Cambie de inmediato la contraseña por defecto del usuario
Admindesde Users > Users. - Valide la conectividad del servidor navegando a Reports > System information y confirmando que el estado de Zabbix Server sea Yes (running).
- Revise los logs del servidor ante cualquier anomalía ejecutando en terminal:
tail -f /var/log/zabbix/zabbix_server.log. - Configure el cifrado TLS/SSL en Nginx para exponer el frontend exclusivamente por HTTPS.
- Ajuste los parámetros de rendimiento en
zabbix_server.conf(por ejemploStartPollers,CacheSizeyHistoryCacheSize) según el volumen de hosts y NVPS (nuevos valores por segundo) esperados.
Conclusión
El stack Zabbix Server 7.0 LTS sobre RHEL 9 constituye una base sólida de observabilidad para el centro de datos, combinando la persistencia transaccional de MySQL, el rendimiento de Nginx con PHP-FPM y la extensibilidad del agente Zabbix Agent 2. Al seguir esta secuencia de instalación desde el repositorio oficial, importación del esquema, configuración de credenciales y aseguramiento con firewalld y SELinux, se obtiene una plataforma de monitoreo escalable, mantenible y alineada con el ciclo de vida de soporte extendido (LTS) de la marca hasta 2029.








