Comprender el rol central del Zabbix Server dentro del ecosistema. Identificar qué tareas realiza, cómo se estructura internamente y qué consecuencias tiene su caída parcial o total.
El operador debe saber:
Qué hace el servidor
Qué procesos lo componen
Qué logs consultar si hay fallas
Qué síntomas indican sobrecarga o mal funcionamiento
El Zabbix Server no solo "muestra alertas".
Es el núcleo lógico y operativo del sistema: recibe datos, los procesa, decide si son normales o anómalos, genera eventos, ejecuta acciones, registra histórico y mantiene limpio el sistema.
🧠 Sin Zabbix Server, no hay evaluación, no hay triggers, no hay eventos, no hay alertas.
Es un servicio centralizado (proceso zabbix_server) que coordina todos los demás componentes del sistema.
Se comunica con: * Agentes Zabbix (activo o pasivo)
* Bases de datos (PostgreSQL, MySQL, TimescaleDB, etc.)
* Frontend web
* Zabbix Proxies
* APIs externas, scripts, notificaciones
Su archivo de configuración principal es:
/etc/zabbix/zabbix_server.conf
Función | Descripción |
---|---|
Recolección activa (pollers ) |
Consulta ítems configurados a intervalos definidos |
Evaluación lógica (triggers ) |
Procesa fórmulas condicionales y detecta si se cumple una condición |
Generación de eventos | Crea un registro cuando un trigger cambia de estado |
Ejecución de acciones | En base a un evento, lanza alertas, scripts o comandos |
Historial y tendencias | Escribe todos los datos recolectados en la base de datos |
Housekeeping | Borra datos antiguos de acuerdo a política |
Descubrimiento (LLD) | Detecta recursos automáticamente (interfaces, discos, etc.) |
Procesamiento de datos externos | Recibe datos por zabbix_sender , trap SNMP, API o Webhooks |
Alertamiento y escalamiento | Escala eventos no atendidos a otros niveles o usuarios |
Control de dependencias | Evalúa triggers dependientes de otros problemas |
Zabbix Server está compuesto por decenas o cientos de procesos hijos, cada uno con una tarea específica. Estos procesos se definen en el archivo zabbix_server.conf
mediante parámetros como:
StartPollers=12
StartTrappers=6
StartAlerters=3
...
Proceso | Función técnica específica | Relevancia operativa |
---|---|---|
Poller | Consulta ítems pasivos a hosts o proxies | Sin ellos, los datos no llegan |
Trapper | Recibe datos enviados por zabbix_sender o agentes en modo activo |
Clave en entornos con active checks |
Unreachable poller | Verifica hosts que no responden y activa reintentos | Detecta fallos de red o agentes caídos |
ICMP pinger | Lanza pings a hosts para monitoreo básico de disponibilidad | Soporte de icmpping |
HTTP poller | Ejecuta chequeos HTTP/HTTPS, monitorea URLs, códigos de estado | Usado en ítems tipo web |
Alerter | Ejecuta acciones: envía correos, Telegram, Webhooks, etc. | Si este proceso falla, no hay alertas salientes |
Escalator | Gestiona acciones programadas y escalamientos (por tiempo o condiciones) | Sin él, el flujo de alertas se detiene |
Housekeeper | Elimina datos antiguos del histórico según política definida | Si está sobrecargado, causa lentitud y bloat |
History syncer | Escribe datos históricos (ítems, eventos) en base de datos | Afecta retención y consistencia |
Timer | Dispara acciones programadas por tiempo (ej. chequeos flexibles) | Sin él, muchas funciones no se ejecutan a tiempo |
LLD worker | Procesa reglas de descubrimiento (discos, interfaces, etc.) | Vital para ítems de bajo nivel |
Preprocessing | Aplica transformaciones a los datos antes de evaluarlos (regex, multiplicadores, etc.) | Clave en datos SNMP, logs, sensores |
Servidor "app01"
↓
Zabbix Agent (pasivo)
↓
Item: system.cpu.util[,user]
↓
Poller del Zabbix Server consulta valor cada 60s
↓
Trigger: CPU > 90% durante 5 min
↓
Si cumple → Evento
↓
Escalator lanza acción a grupo "TI"
↓
Alerter ejecuta media type → Telegram
↓
Operador recibe alerta
¿Qué procesos estuvieron involucrados?
Poller, trigger evaluator, escalator, alerter
ps aux | grep zabbix_server
tail -f /var/log/zabbix/zabbix_server.log
Síntoma | Signo probable |
---|---|
Alertas no se envían | Alerter caído o media mal configurada |
Zabbix GUI dice "No data" | Pollers agotados o ítems mal configurados |
Eventos no escalan | Escalator detenido o sobrecargado |
GUI lenta o bloqueada | Housekeeper o history syncer sobrecargado |
“Los ítems icmpping
de 30 hosts dejaron de actualizarse.”
¿Qué proceso deberías revisar primero?
####### Respuesta
ICMP pinger
“No llegan notificaciones por correo desde ayer, pero los triggers se disparan correctamente.”
¿Qué proceso deberías validar?
####### Respuesta:
Alerter
“El historial de métricas de los últimos 2 días está incompleto.”
¿Qué proceso pudo fallar?
####### Respuesta:
History syncer
“Cuando algo falla en Zabbix, no siempre es culpa del ítem, del host o de la red.
A veces el problema está en el propio corazón del sistema: el servidor y sus procesos.”
El buen operador no espera a que la GUI le diga “No data”: sabe revisar los logs, validar el estado de los procesos y actuar proactivamente.
El operador entiende qué hace realmente el Zabbix Server
Reconoce los procesos principales que lo componen y sus funciones
Puede investigar fallos revisando logs y estados de procesos
Desarrolla criterio técnico proactivo para validar el estado del sistema
Propósito pedagógico:
Mostrar al operador que aunque la GUI esté en línea y el host esté encendido, el sistema puede estar fallando desde dentro si los procesos del servidor no están operando correctamente.
Esta sección entrena el pensamiento causa-raíz y prepara al operador para auditar técnicamente el estado interno de Zabbix en situaciones críticas.
Los ítems muestran valores anómalos (ej. CPU al 95%, RAM al 92%)
No se genera ninguna alerta
El equipo cree que “todo está bien”
El problema escala cuando un servicio se cae por sobrecarga
El proceso interno de evaluación de triggers (trigger evaluator) dejó de ejecutarse por sobrecarga del sistema o bloqueo en DB
Zabbix sigue recolectando datos (pollers activos), pero no evalúa las condiciones
```
slow query: update triggers set ...
trigger evaluator delayed
```
Verificar carga en base de datos (SELECT * FROM pg_stat_activity
)
Verificar si zabbix_server
sigue ejecutando el proceso de trigger evaluation
Reiniciar servicio si está bloqueado y revisar uso de índices en base
Lección: Ver datos ≠ que el sistema esté funcionando. Si los triggers no evalúan, no hay eventos → no hay alertas.
Triggers se disparan correctamente (se ven en GUI)
Los eventos aparecen en la pestaña "Problems"
Pero no se recibe ningún correo ni mensaje en Telegram
El proceso alerter
del Zabbix Server se detuvo (por error de red, bug, mal media type, o error de ejecución)
El frontend sigue funcionando, pero la ejecución de acciones está rota
```
cannot execute media type script: timeout
alerter process crashed
```
```bash
ps aux | grep zabbix_server | grep alerter
# No aparece ningún proceso activo
```
Reiniciar el zabbix_server
Validar el script o canal de comunicación configurado
Verificar los logs por errores de permisos, tiempo de espera o comandos mal escritos
Lección: Los triggers sí se activan, pero sin alerter, el sistema no habla.
Todos los ítems muestran estado “ZBX” en gris
La GUI dice “No data”
El log está creciendo rápidamente
Pollers agotados: hay más ítems que procesos de recolección disponibles
Configuración de StartPollers=5
para más de 3000 ítems → cuello de botella
Pollers se van acumulando y se bloquean
```
poller got empty result
poller busy 100%
cannot assign more items to poller
```
```bash
zabbix_get -s 127.0.0.1 -k "zabbix[process,poller,avg,busy]"
# Resultado cercano o igual a 1.0 = saturado
```
Aumentar el valor de StartPollers
en zabbix_server.conf
Dividir ítems en proxies si es viable
Verificar ítems innecesarios o mal configurados con intervalos excesivos
Lección: Zabbix puede estar activo, pero si no tiene recursos para recolectar, es como si estuviera ciego.
La GUI responde muy lento, o muestra errores 504/timeout
Las consultas a problemas, eventos o históricos tardan minutos
El equipo cree que es problema del navegador o internet
El proceso housekeeper está saturado por exceso de datos no eliminados
También puede ser history syncer escribiendo en disco de forma desordenada
Base de datos sin compresión o sin políticas de retención (en TimescaleDB)
```
housekeeper started cleaning...
slow delete from history_uint
disk I/O overload detected
```
```bash
iotop -o
```
```sql
SELECT relname, pg_size_pretty(pg_total_relation_size(relid))
FROM pg_catalog.pg_statio_user_tables
ORDER BY pg_total_relation_size(relid) DESC
LIMIT 10;
```
Activar compresión en TimescaleDB
Establecer políticas de retención (ej. mantener solo 30 días de histórico)
Separar disco de logs e histórico si es posible
Ajustar HousekeepingFrequency
, usar DisableHousekeeping
+ cron externo si es crítico
Lección: Los datos son valiosos, pero si no se controlan, pueden destruir el rendimiento del sistema.
Se reciben múltiples alertas por un mismo evento
Acciones como reboot
, restart apache
se ejecutan varias veces
La GUI muestra mismo evento con múltiples entradas en el timeline
El proceso escalator mal configurado o ejecutando acciones sin control de condiciones
El trigger no está cerrado y sigue ejecutando pasos de acción cada cierto tiempo
```
frontend → Monitoring → Problems → evento → History
```
escalator executing step 1
escalator executing step 2
...
```
Agregar condiciones adicionales en la acción (ej. solo si not acknowledged
)
Verificar ciclos o loops en las condiciones de triggers y dependencias
Asegurarse que los problemas se cierran correctamente
Lección: Automatizar está bien, pero sin condiciones claras, se puede volver una amenaza operativa.
*“Zabbix Server puede estar vivo… pero parcialmente paralizado.
Un operador que no conoce sus procesos, actúa como si Zabbix fuera solo una pantalla.
Un operador capacitado entiende que cada alerta es fruto de múltiples engranes funcionando.”*
✅ Resultado esperado adicional
- El operador puede identificar síntomas indirectos de fallas internas
Sabe relacionar fallas funcionales con procesos internos
Reconoce que el monitoreo también debe monitorearse