Guía de Instalación y Configuración de Zabbix 7.0 LTS en Ubuntu 24.04 LTS: Arquitectura, PostgreSQL y Nginx

Introducción e Infraestructura de Monitoreo con Zabbix 7.0 LTS

Zabbix 7.0 LTS es una plataforma distribuida de monitoreo y observabilidad de infraestructura de grado empresarial diseñada para la recolección, correlación, análisis y visualización en tiempo real de métricas operativas procedentes de servidores, componentes de red, máquinas virtuales, contenedores y servicios en la nube. El despliegue del stack Zabbix Server sobre el sistema operativo Ubuntu 24.04 LTS (Noble Numbat) se realiza integrando el motor de base de datos relacional PostgreSQL 16, el servidor web de alto rendimiento Nginx y el interprete de scripts PHP-FPM (versión 8.3), logrando una arquitectura capaz de procesar un elevado volumen de nuevos valores por segundo (NVPS) sin degradación de I/O. Esta infraestructura proporciona detección proactiva de anomalías mediante algoritmos sintácticos de disparadores, motor de alertas multicanal automatizado y escalabilidad horizontal para entornos críticos de producción.

Requisitos Previos y Dimensionamiento de la Infraestructura

Antes de iniciar la instalación de los componentes del stack de Zabbix, es imprescindible realizar un análisis de dimensionamiento del hardware subyacente y verificar que las reglas de filtrado de paquetes en la red permitan el flujo de datos bidireccional entre el servidor central, las sondas (proxies) y los agentes.

Requisitos del Sistema Operativo y Hardware

Para una infraestructura base capaz de monitorear hasta 1,000 nodos activos con una frecuencia de muestreo de 60 segundos (aproximadamente 1,500 a 2,000 NVPS), se requieren las siguientes especificaciones técnicas mínimas:

  • Sistema Operativo: Ubuntu 24.04 LTS (Noble Numbat) de 64 bits en instalación Server limpia.
  • Unidad Central de Procesamiento (CPU): 4 núcleos virtuales (vCPU) dedicados a 2.4 GHz o superior.
  • Memoria RAM: 8 GB de RAM (asignando 4 GB a la instancia de PostgreSQL, 2 GB a la memoria compartida de Zabbix y 2 GB al sistema operativo y PHP-FPM).
  • Almacenamiento: Unidad SSD NVMe de 100 GB con alto rendimiento de escrituras aleatorias para soportar las transacciones concurrentes en las tablas de historial y tendencias.
  • Privilegios de Usuario: Cuenta de usuario no raíz con acceso a la utilidad sudo para ejecución imperativa de comandos administrativos.

Matriz de Puertos de Red y Reglas de Firewall

Asegúrese de habilitar las siguientes reglas de comunicación en el firewall del sistema (UFW) o en los grupos de seguridad de la red para garantizar el funcionamiento del stack:

PuertoProtocoloFlujo (Origen → Destino)Propósito del Servicio
10051TCPAgentes / Proxies → ServerPuerto de escucha principal del trapper y pollers activos del Zabbix Server.
10050TCPServer → Agente ZabbixPuerto de escucha del Zabbix Agent / Agent 2 para recolección pasiva de métricas.
80 / 443TCPAdministrador → Server WebAcceso a la consola gráfica de gestión (Frontend Web) mediante HTTP/HTTPS.
161 / 162UDPDispositivos → ServerRecolección de métricas mediante consultas SNMP Polling y recepción de SNMP Traps.

Despliegue del Stack Zabbix 7.0 LTS en Ubuntu 24.04 LTS

El siguiente procedimiento describe detalladamente la configuración de repositorios oficiales, el aprovisionamiento del motor PostgreSQL, la importación del esquema de base de datos y la configuración de Nginx con PHP 8.3.

Paso 1. Configuración del Repositorio Oficial de Zabbix

  1. Abra una sesión de terminal SSH en el servidor Ubuntu 24.04 LTS.
  2. Descargue el paquete de configuración del repositorio oficial de Zabbix versión 7.0 LTS diseñado para Ubuntu 24.04: wget https://repo.zabbix.com/zabbix/7.0/ubuntu/pool/main/z/zabbix-release/zabbix-release_latest_7.0+ubuntu24.04_all.deb
  3. Instale el archivo .deb descargado en el gestor de paquetes local: sudo dpkg -i zabbix-release_latest_7.0+ubuntu24.04_all.deb
  4. Actualice el índice del gestor de paquetes apt para incluir los paquetes del nuevo repositorio: sudo apt update

Paso 2. Instalación de Zabbix Server, Frontend, Nginx y Agente 2

  1. Ejecute la instalación unificada de Zabbix Server con soporte nativo para PostgreSQL, la interfaz gráfica web PHP, las plantillas de Nginx, los scripts de inicialización SQL y el Agente 2 de Zabbix: sudo apt install -y zabbix-server-pg zabbix-frontend-php zabbix-nginx-conf zabbix-sql-scripts zabbix-agent2 postgresql postgresql-contrib

Paso 3. Configuración y Aprovisionamiento del SGBD PostgreSQL 16

  1. Verifique que el servicio de PostgreSQL esté activo y habilitado para iniciar automáticamente con el sistema: sudo systemctl enable --now postgresql
  2. Acceda a la consola interactiva de PostgreSQL utilizando la cuenta de sistema postgres: sudo -u postgres psql
  3. Cree el usuario de base de datos zabbix y defina una contraseña segura. Reemplace la cadena 'TuClaveSegura2026!' por su credencial definitiva: CREATE USER zabbix WITH PASSWORD 'TuClaveSegura2026!';
  4. Cree la base de datos nominada zabbix asignando como propietario al usuario zabbix y estableciendo la codificación en UTF-8: CREATE DATABASE zabbix OWNER zabbix ENCODING 'UTF8' LC_COLLATE 'C' LC_CTYPE 'C';
  5. Cierre la interfaz de la consola de PostgreSQL: \q

Paso 4. Importación del Esquema Inicial y Datos Base

  1. Importe la estructura de tablas y los registros iniciales suministrados por el paquete oficial dentro de la base de datos PostgreSQL creada. Ingrese la contraseña del usuario zabbix configurada previamente cuando la consola lo solicite: zcat /usr/share/zabbix-sql-scripts/postgresql/server.sql.gz | sudo -u zabbix psql zabbix
  2. Asegúrese de que el comando finalice sin arrojar errores de sintaxis o de autenticación antes de continuar con la configuración del servicio principal.

Paso 5. Edición del Archivo de Configuración zabbix_server.conf

  1. Abra el archivo de configuración del daemon de Zabbix Server en la ruta predeterminada del sistema: sudo nano /etc/zabbix/zabbix_server.conf
  2. Ubique los parámetros de conexión a la base de datos, des-comente la directiva DBPassword eliminando el carácter # e introduzca la clave configurada en el paso 3: DBHost=localhost DBName=zabbix DBUser=zabbix DBPassword=TuClaveSegura2026!
  3. Guarde los cambios aplicados en el editor nano mediante la combinación Ctrl + O, confirme con Enter y cierre la herramienta con Ctrl + X.

Paso 6. Configuración del Servidor Web Nginx y el Entorno PHP-FPM

  1. Abra el archivo de virtual host de Nginx creado específicamente para la interfaz gráfica de Zabbix: sudo nano /etc/zabbix/nginx.conf
  2. Des-comente las directivas listen y server_name. Ajuste el puerto de escucha web deseado (por ejemplo, el puerto 80) y defina la dirección IP pública/privada o el nombre de dominio FQDN de la máquina: listen 80; server_name monitoreo.tudominio.com;
  3. Guarde y cierre el archivo de configuración de Nginx.
  4. Edite el archivo de configuración de la piscina PHP-FPM para Zabbix: sudo nano /etc/zabbix/php-fpm.conf
  5. Localice la variable date.timezone, remueva el símbolo de comentario y configure la zona horaria correspondiente a la ubicación geográfica de sus servidores: php_value[date.timezone] = America/Mexico_City

Paso 7. Arranque e Habilitación de Servicios del Sistema

  1. Ejecute el reinicio y habilitación automática durante la secuencia de arranque del sistema operativo para los servicios Zabbix Server, Zabbix Agent 2, Nginx y PHP 8.3 FPM: sudo systemctl restart zabbix-server zabbix-agent2 nginx php8.3-fpm sudo systemctl enable zabbix-server zabbix-agent2 nginx php8.3-fpm
  2. Compruebe la correcta ejecución del daemon de Zabbix verificando el estado del servicio: sudo systemctl status zabbix-server

Asistente de Configuración Web de Zabbix (Web GUI Setup)

Posterior al arranque exitoso de los procesos de backend, debe ejecutarse la inicialización de la interfaz gráfica a través del navegador web.

Paso 8. Ejecución del Wizard de Zabbix Frontend

  1. Abra su navegador web e ingrese el FQDN o la IP asignada en el servidor Nginx (por ejemplo, http://192.168.1.50 o http://monitoreo.tudominio.com).
  2. Selección de Idioma: En la pantalla de bienvenida, seleccione Spanish (es_ES) o mantenga el idioma predeterminado y presione el botón «Next step».
  3. Verificación de Pre-requisitos: Compruebe que todos los parámetros de ejecución de PHP (memory_limit, post_max_size, upload_max_filesize, max_execution_time, max_input_time, sockets, gd) muestren el indicador de estado OK en verde. Haga clic en «Next step».
  4. Conexión con la Base de Datos:
    • Database type: Seleccione PostgreSQL.
    • Database host: localhost
    • Database port: 0 (se asignará el puerto 5432 por defecto)
    • Database name: zabbix
    • User: zabbix
    • Password: Ingrese la clave TuClaveSegura2026!.
    Presione «Next step».
  5. Configuración del Servidor: En el campo Zabbix server name, defina una etiqueta descriptiva (por ejemplo, Zabbix-PROD-Ubuntu24) y confirme la zona horaria del sistema. Presione «Next step».
  6. Resumen e Instalación: Valide las opciones seleccionadas y presione «Next step» para generar automáticamente el archivo de parámetros /etc/zabbix/web/zabbix.conf.php. Finalice haciendo clic en «Finish».
  7. Autenticación en la Plataforma:
    • Usuario por defecto: Admin (respetando la letra mayúscula inicial).
    • Contraseña por defecto: zabbix (en minúsculas).

ALERTA DE SEGURIDAD OPERATIVA: Tan pronto como ingrese por primera vez al panel de control, diríjase al módulo User Settings → Profile o navegue a Administration → Users, seleccione la cuenta Admin y proceda a cambiar la contraseña predeterminada para fortificar la plataforma frente a escaneos automatizados.

Optimización del Rendimiento y Ajustes del Kernel Linux

En despliegues de grado empresarial, las configuraciones por defecto de Ubuntu 24.04 y de los buffers de Zabbix pueden generar cuellos de botella bajo alta carga de trabajo. A continuación, se detallan los ajustes de parámetros del sistema operativos requeridos.

Optimización de Parámetros sysctl para Red y Memoria

  1. Cree un archivo de personalización de parámetros del kernel en el directorio sysctl.d: sudo nano /etc/sysctl.d/99-zabbix-performance.conf
  2. Agregue los siguientes parámetros para incrementar las colas de procesamiento de red y ajustar el manejo de memoria virtual: # Ajuste de tamaño máximo de memoria compartida kernel.shmmax = 2147483648 kernel.shmall = 524288 # Optimización de la cola de backlog TCP para recepción masiva de métricas net.core.somaxconn = 4096 net.ipv4.tcp_max_syn_backlog = 4096 net.ipv4.ip_local_port_range = 1024 65535 # Reducción de la agresividad del uso de espacio SWAP vm.swappiness = 10
  3. Cargue la nueva configuración en caliente para aplicar los cambios en el kernel en ejecución: sudo sysctl --system

Tuning de Caché y Pollers en Zabbix Server

  1. Edite el archivo de configuración principal de Zabbix Server: sudo nano /etc/zabbix/zabbix_server.conf
  2. Modifique las directivas asignando valores ajustados a la disponibilidad de memoria RAM del servidor: # Asignación de memoria compartida para almacenar la configuración de Hosts e Ítems CacheSize=512M # Búferes en RAM para retención temporal de historial y tendencias antes del commit en PostgreSQL HistoryCacheSize=128M HistoryIndexCacheSize=64M TrendCacheSize=64M ValueCacheSize=256M # Incremento de procesos concurrentes de recolección de datos StartPollers=20 StartPollersUnreachable=10 StartTrappers=10 StartPingers=10 StartHTTPPollers=10
  3. Reinicie el servicio de Zabbix Server para reasignar los bloques de memoria RAM: sudo systemctl restart zabbix-server

Monitoreo Inicial: Instalación y Validación del Zabbix Agent 2

El Zabbix Agent 2 es un agente de monitoreo moderno escrito en lenguaje Go que reemplaza la arquitectura clásica basada en hilos. Permite la ejecución concurrente de solicitudes mediante un esquema de plugins ligeros, minimizando el impacto sobre los recursos del sistema objetivo.

Paso 1. Instalación del Agente 2 en Ubuntu

  1. Instale el paquete ejecutable del Agente 2 desde los repositorios previamente configurados: sudo apt update sudo apt install -y zabbix-agent2

Paso 2. Configuración del Archivo zabbix_agent2.conf

  1. Abra el archivo de configuración del Agente 2: sudo nano /etc/zabbix/zabbix_agent2.conf
  2. Especifique la dirección IP del servidor central y defina la identidad única del host: # Dirección IP del Zabbix Server autorizada para polling pasivo Server=127.0.0.1, 192.168.1.50 # Dirección IP del Zabbix Server autorizada para métricas activas ServerActive=192.168.1.50 # Nombre idéntico al configurado en la opción "Host name" de la interfaz gráfica Hostname=Zabbix-PROD-Ubuntu24
  3. Guarde las modificaciones realizadas en el archivo.
  4. Reinicie y habilite la ejecución automática del servicio del Agente 2: sudo systemctl restart zabbix-agent2 sudo systemctl enable zabbix-agent2

Paso 3. Prueba de Comunicación Pasiva con la Utilidad zabbix_get

  1. Instale la herramienta de línea de comandos zabbix-get en la máquina donde reside el Zabbix Server: sudo apt install -y zabbix-get
  2. Ejecute una consulta de prueba hacia la IP del agente solicitando la versión instalada (agent.version): zabbix_get -s 127.0.0.1 -k agent.version
  3. La terminal deberá retornar la cadena correspondiente a la versión instalada (ejemplo: 7.0.0), confirmando que el canal de comunicación TCP por el puerto 10050 opera correctamente sin bloqueos.

Conclusiones y Mantenimiento de la Infraestructura Base

El despliegue del stack Zabbix 7.0 LTS en Ubuntu 24.04 LTS aprovechando la integración de PostgreSQL 16, Nginx y PHP 8.3 establece un entorno de observabilidad confiable, robusto y preparado para soportar cargas operativas exigentes. La implementación nativa de Zabbix Agent 2 garantiza una recolección de métricas ligera y concurrente, reduciendo el consumo de CPU y memoria en los endpoints monitoreados.

Para asegurar el rendimiento óptimo y la sostenibilidad del sistema a largo plazo, se recomienda implementar estrategias de mantenimiento automatizado sobre el motor PostgreSQL (como procesos de VACUUM ANALYZE en las tablas principales), habilitar el particionamiento de tablas para simplificar el borrado de datos históricos obsoletos, e implementar cifrado seguro mediante certificados TLS en las comunicaciones entre el servidor central, los proxies y los agentes.


🔥Tendencia🔥


Notas interesantes


Lo más reciente