Despliegue de Zabbix 7.0 LTS en Red Hat Enterprise Linux (RHEL 9): Guía Arquitectónica, Instalación e Infraestructura Base

Zabbix 7.0 LTS es una solución de monitoreo de infraestructura distribuida de grado empresarial diseñada para la recolección de métricas en tiempo real, análisis de disponibilidad y detección de anomalías en redes, servidores, servicios en la nube y aplicaciones. Este artículo detalla el procedimiento técnico estándar para desplegar el stack completo de Zabbix Server en servidores con el sistema operativo Red Hat Enterprise Linux 9 (RHEL 9), utilizando PostgreSQL como motor de base de datos relacional y Apache (httpd) con PHP-FPM como servidor web. El objetivo principal de este despliegue es establecer una plataforma de supervisión resiliente, escalable y optimizada, cumpliendo con las mejores prácticas de seguridad operativa, hardening de SELinux y políticas de cortafuegos de red.

Requisitos Previos e Infraestructura Base

Antes de iniciar la instalación de los paquetes de Zabbix, es fundamental aprovisionar un entorno de sistema operativo que cumpla con los requerimientos mínimos de hardware, red y kernel para garantizar la estabilidad del demonio de monitoreo.

Dimensionamiento de Hardware Recomendado

Para un entorno de producción mediano (de 100 a 500 dispositivos supervisados con un promedio de 1,000 nuevos valores recolectados por segundo – NVPS), se sugieren las siguientes especificaciones:

  • CPU: 4 a 8 vCPUs x86_64 dedicados.
  • Memoria RAM: 8 GB a 16 GB ECC RAM (asignando al menos 4 GB de buffer de base de datos).
  • Almacenamiento: 100 GB NVMe o SSD en arreglo RAID 1/10 con alta capacidad de IOPS para operaciones de escritura en la base de datos de datos históricos y de tendencias.
  • Red: Interfaz de red dedicada de 1 Gbps o superior con dirección IP estática IPv4/IPv6 asignada.

Preparación del Sistema Operativo RHEL 9

Asegúrese de que el servidor cuente con una suscripción activa de Red Hat y que los repositorios base se encuentren completamente actualizados.

  1. Actualice el sistema operativo a la última versión estable de paquetes: sudo dnf update -y
  2. Configure el nombre de host cualificado (FQDN) en el sistema: sudo hostnamectl set-hostname zabbix-server.infra.local
  3. Establezca la zona horaria del sistema operativo en UTC o en la zona geográfica correspondiente a su centro de datos: sudo timedatectl set-timezone America/Mexico_City
  4. Verifique la configuración regional (locale) del sistema. Zabbix Frontend requiere soporte completo de codificación UTF-8: sudo localectl set-locale LANG=es_MX.UTF-8

Instalación y Configuración del Motor de Base de Datos PostgreSQL

Zabbix Server requiere un motor de base de datos relacional de alto rendimiento para gestionar los datos de configuración, eventos, historial y tendencias. PostgreSQL 15 o superior es el motor recomendado para despliegues empresariales en RHEL 9 debido a su rendimiento multitarea y soporte avanzado de índices.

Instalación del Servidor PostgreSQL

  1. Instale los paquetes del servidor PostgreSQL desde los repositorios oficiales de RHEL 9: sudo dnf install -y postgresql-server postgresql-contrib
  2. Inicialice el clúster de la base de datos PostgreSQL: sudo postgresql-setup --initdb
  3. Habilite y arranque el servicio de PostgreSQL en el arranque del sistema: sudo systemctl enable --now postgresql
  4. Confirme que el servicio se encuentre en estado activo (running): sudo systemctl status postgresql

Creación de la Base de Datos y Usuario de Zabbix

Ejecute las siguientes instrucciones utilizando el usuario administrador del sistema postgres para crear la entidad de base de datos y la cuenta de acceso con credenciales seguras.

  1. Acceda al prompt interactivo de PostgreSQL como el usuario del sistema: sudo -u postgres psql
  2. Cree la cuenta de usuario de base de datos zabbix protegiéndola con una contraseña fuerte: CREATE USER zabbix WITH PASSWORD 'PasswordSeguraZabbix2026!';
  3. Cree la base de datos zabbix asignando al usuario recién creado como propietario y estableciendo la codificación UTF-8: CREATE DATABASE zabbix OWNER zabbix ENCODING 'UTF8' LC_COLLATE 'es_MX.UTF-8' LC_CTYPE 'es_MX.UTF-8';
  4. Otorgue todos los privilegios sobre la base de datos al usuario zabbix: GRANT ALL PRIVILEGES ON DATABASE zabbix TO zabbix;
  5. Salga de la interfaz CLI de PostgreSQL: \q

Adición del Repositorio Oficial e Instalación del Stack Zabbix

Para asegurar el acceso a la versión LTS (Long Term Support) más reciente y a sus parches de seguridad, es indispensable agregar el repositorio DNF oficial mantenido por Zabbix SIA.

Configuración del Repositorio Oficial de Zabbix 7.0 LTS

  1. Descargue e instale el paquete RPM de configuración del repositorio oficial para RHEL 9: sudo dnf install -y https://repo.zabbix.com/zabbix/7.0/rhel/9/x86_64/zabbix-release-7.0-5.el9.noarch.rpm
  2. Limpie el caché del gestor de paquetes DNF para forzar la lectura del nuevo repositorio: sudo dnf clean all sudo dnf makecache

Instalación del Servidor, Interfaz Web y Agente de Zabbix

Ejecute el siguiente comando para instalar el binario del servidor compilado con soporte PostgreSQL, la interfaz gráfica en PHP, el archivo de configuración para Apache, los scripts iniciales de base de datos, el módulo SELinux y el agente de monitoreo Zabbix Agent 2:

sudo dnf install -y zabbix-server-pg zabbix-web-pgsql zabbix-apache-conf zabbix-sql-scripts zabbix-selinux-policy zabbix-agent2

Importación del Esquema Inicial y Poblamiento de la Base de Datos

Una vez completada la instalación de los componentes binarios, es necesario estructura la base de datos con las tablas, índices y datos por defecto necesarios para el funcionamiento del servidor.

Carga del Esquema SQL Inicial

  1. Descomprima e importe el archivo de esquema SQL oficial provisto por el paquete zabbix-sql-scripts hacia la base de datos PostgreSQL creada previamente: zcat /usr/share/zabbix-sql-scripts/postgresql/server.sql.gz | sudo -u zabbix psql zabbix
  2. Ingrese la contraseña configurada anteriormente (PasswordSeguraZabbix2026!) cuando la terminal solicite autenticación. El proceso tardará unos segundos mientras se construyen las tablas.

Configuración Fina del Servidor Zabbix y Stack Web

El siguiente paso consiste en vinculación de credenciales en el archivo de configuración del demonio zabbix_server y el ajuste del entorno de ejecución PHP-FPM para atender la interfaz web.

Configuración de Parámetros en zabbix_server.conf

  1. Abra el archivo de configuración principal del servidor con un editor de texto plano: sudo nano /etc/zabbix/zabbix_server.conf
  2. Localice y modifique las siguientes directivas de conexión a la base de datos: DBHost=localhost DBName=zabbix DBUser=zabbix DBPassword=PasswordSeguraZabbix2026! DBPort=5432
  3. Optimice la asignación de memoria para la caché de configuración y limpiadores de datos según la capacidad de hardware del servidor: CacheSize=128M HistoryCacheSize=64M HistoryIndexCacheSize=32M TrendCacheSize=32M ValueCacheSize=64M
  4. Guarde los cambios y cierre el archivo de texto.

Configuración del Módulo PHP-FPM y Servidor Apache

  1. Edite el archivo de configuración PHP para la interfaz de Zabbix: sudo nano /etc/php-fpm.d/zabbix.conf
  2. Verifique o reemplace la directiva de zona horaria para coincidir con el entorno del sistema operativo: php_value[date.timezone] = America/Mexico_City
  3. Ajuste los límites de memoria y tiempos de ejecución del motor PHP para evitar caídas durante la generación de gráficos o reportes voluminosos: php_value[memory_limit] = 512M php_value[post_max_size] = 32M php_value[upload_max_filesize] = 16M php_value[max_execution_time] = 300 php_value[max_input_time] = 300
  4. Guarde y cierre el archivo.

Hardening de Seguridad: Firewalld y SELinux

En entornos basados en Red Hat Enterprise Linux, es imprescindible mantener activos SELinux y el cortafuegos del sistema (firewalld), aplicando reglas explícitas para permitir el tráfico de monitoreo sin degradar la seguridad del Kernel.

Configuración del Cortafuegos Systemd (firewalld)

Zabbix utiliza dos puertos estándar principales: el puerto 10051/TCP para la comunicación del Zabbix Server con agentes activos/proxies, y el puerto 10050/TCP para que el servidor consulte a agentes pasivos. La consola web opera en los puertos HTTP/HTTPS estándar (80 y 443 TCP).

  1. Habilite los servicios web HTTP y HTTPS en el perfil de cortafuegos activo: sudo firewall-cmd --permanent --add-service=http sudo firewall-cmd --permanent --add-service=https
  2. Abra explícitamente los puertos de comunicación nativos de Zabbix Server y Zabbix Agent: sudo firewall-cmd --permanent --add-port=10051/tcp sudo firewall-cmd --permanent --add-port=10050/tcp
  3. Recargue la configuración del cortafuegos para aplicar las reglas en memoria: sudo firewall-cmd --reload
  4. Inspeccione las reglas aplicadas en la zona activa: sudo firewall-cmd --list-all

Configuración de Booleans y Políticas de SELinux

El paquete zabbix-selinux-policy instalado previamente provee políticas base, pero es necesario habilitar switches booleanos específicos para que el proceso del servidor web y los demonios de Zabbix puedan interconectarse a la red y al conector de PostgreSQL.

  1. Permita que el servidor web Apache realice conexiones de red salientes (necesario para comunicar la interfaz gráfica PHP con el demonio Zabbix Server via socket/TCP): sudo setsebool -P httpd_can_network_connect 1
  2. Permita que Apache pueda conectarse a motores de bases de datos externos o locales: sudo setsebool -P httpd_can_network_connect_db 1
  3. Permita que los procesos de Zabbix Server ejecuten verificaciones de red y conexiones directas: sudo setsebool -P zabbix_can_network 1

Aranque y Verificación de los Servicios del Stack

Con todas las configuraciones en su lugar, proceda a iniciar y habilitar la persistencia de los servicios del ecosistema Zabbix.

Inicialización de Demonios en Systemd

  1. Arranque y habilite el servicio del servidor Zabbix, el agente local de Zabbix 2, el servidor web Apache y el procesador PHP-FPM simultáneamente: sudo systemctl enable --now zabbix-server zabbix-agent2 httpd php-fpm
  2. Verifique que los cuatro servicios se encuentren en estado active (running): sudo systemctl status zabbix-server zabbix-agent2 httpd php-fpm
  3. Inspeccione el archivo de registro (log) del servidor Zabbix para verificar que no existan errores de sintaxis o fallos de conexión a PostgreSQL: sudo tail -f -n 50 /var/log/zabbix/zabbix_server.log Debe observar una línea similar a: server #0 started [main process].

Asistente de Instalación Web (Web GUI Setup Wizard)

El último paso operativo se realiza desde un navegador web conectándose a la dirección IP o FQDN del servidor configurado.

Pasos para Finalizar la Instalación desde la Consola Gráfica

  1. Abra un navegador web e ingrese a la URL del servidor: http://zabbix-server.infra.local/zabbix o alternativamente mediante la dirección IP: http://<DIRECCION_IP_DEL_SERVIDOR>/zabbix
  2. Bienvenida: Seleccione el idioma de la interfaz (Español) y haga clic en «Paso siguiente».
  3. Comprobación de Requisitos Previos: El instalador validará automáticamente las versiones de PHP, límites de memoria, parámetros de tiempo de ejecución y extensiones requeridas. Todos los valores deben mostrar el estado en color verde (OK). Haga clic en «Paso siguiente».
  4. Configuración de la conexión a la base de datos:
    • Database type: PostgreSQL
    • Database host: localhost
    • Database port: 5432
    • Database name: zabbix
    • User: zabbix
    • Password: PasswordSeguraZabbix2026!
    Haga clic en «Paso siguiente» para probar la conectividad.
  5. Ajustes del servidor Zabbix: Asigne un nombre descriptivo a la instancia (por ejemplo: RHEL9-Zabbix-Prod-01), mantenga el puerto en 10051 y seleccione la zona horaria predeterminada. Haga clic en «Paso siguiente».
  6. Resumen: Revise la configuración parametrizada y confirme la finalización de la instalación. El asistente creará el archivo de configuración /etc/zabbix/web/zabbix.conf.php.
  7. Inicio de Sesión Inicial: Complete la instalación y será redirigido a la pantalla de inicio de sesión. Credenciales por defecto del sistema:
    • Usuario: Admin
    • Contraseña: zabbix

RECOMENDACIÓN CRÍTICA DE SEGURIDAD: Inmediatamente después de iniciar sesión por primera vez, diríjase al menú User Settings -> Profile o a Administration -> Users y cambie la contraseña predeterminada de la cuenta Admin para evitar accesos no autorizados a su infraestructura de monitoreo.

Publicado

en

por


🔥Tendencia🔥


Notas interesantes


Lo más reciente