6. Zabbix Agent - pasivo vs activo, comunicación, ejemplos reales

10 – Zabbix Agent: pasivo vs activo, comunicación, ejemplos reales


Objetivo técnico-pedagógico

Que el operador comprenda cómo opera el Zabbix Agent, cuáles son sus modos de funcionamiento (activo y pasivo), cómo se configura, qué rol cumple en el monitoreo, cómo se comunica con el Server o el Proxy, y cómo identificar fallos típicos derivados de errores de configuración o conectividad.


🧩 ¿Qué es el Zabbix Agent?

El Zabbix Agent es el programa que vive dentro del host monitoreado.

Es quien recoge información del sistema operativo (CPU, RAM, disco, procesos, logs, puertos, etc.) y la envía a Zabbix.

Sin agente, no hay monitoreo local detallado.

🧠 El agente es fundamental cuando:

  • Se necesita visibilidad de bajo nivel (procesos, logs, recursos)

  • No se usa SNMP o el sistema operativo no expone datos por otros medios

  • Se requiere validar archivos, sockets, servicios, ejecutables o contadores internos


Modos de operación del agente: pasivo vs activo

Modo pasivo (Zabbix consulta al agente)

  • El Zabbix Server (o Proxy) envía una solicitud directa al agente usando el puerto 10050.

  • El agente solo responde si se le pregunta.

  • Es el modo más clásico.


[Zabbix Server/Proxy]

         ↓ solicita dato (ej. CPU)

   [Zabbix Agent en host]

         ↑ responde el valor
🧪 Validación:

zabbix_get -s <IP_HOST> -k system.cpu.load

Requiere que el puerto 10050 esté abierto desde el Server.


Modo activo (el agente inicia la comunicación)

  • El agente inicia la conexión hacia el Server (o Proxy), por el puerto 10051.

  • No espera a que lo consulten: envía de forma periódica todos los ítems marcados como “activos”.

  • Útil cuando:

  * El Server no puede entrar al host (NAT, redes cerradas, VPN)

  * Se requiere mayor control desde el host (push controlado)


[Zabbix Agent en host]

         ↓ envía datos a

   [Zabbix Server/Proxy]
🧪 Validación:

tail -f /var/log/zabbix/zabbix_agentd.log

El agente pide ítems al Server → recolecta → envía


Comparativa técnica: pasivo vs activo

| Característica              | Modo pasivo                          | Modo activo                                   |

| --------------------------- | ------------------------------------ | --------------------------------------------- |

| Inicia la conexión          | Zabbix Server/Proxy                  | Zabbix Agent                                  |

| Puerto usado                | 10050 (en host)                      | 10051 (del server)                            |

| Firewall necesario          | Abrir 10050 hacia el host            | Solo salida permitida desde el host           |

| Detección de red caída      | Inmediata (Zabbix ve si no responde) | Lenta (si el host deja de enviar)             |

| Configuración compleja      | Baja                                 | Media (requiere Hostname correcto)          |

| Diagnóstico con zabbix_get | ✅ Sí                                 | ❌ No                                          |

| Ideal para…                 | Entornos locales, sin restricciones  | Ambientes remotos, con NAT, entornos cerrados |


⚙️ ¿Dónde se configura?

Archivo del agente:


/etc/zabbix/zabbix_agentd.conf

Parámetros clave:


## En modo pasivo:

Server=10.250.8.178,10.105.9.0/24,10.102.53.0/24

## En modo activo NUNCA SE USA EN IPICYT:

ServerActive=10.100.1.1

Hostname=servidor-backend-01

Errores comunes y sus causas

| Síntoma operativo                          | Posible causa                                                 | Diagnóstico                |

| ------------------------------------------ | ------------------------------------------------------------- | -------------------------- |

| “ZBX” en rojo en GUI                       | El Server no puede contactar al agente (puerto 10050 cerrado) | zabbix_get falla         |

| Datos no se actualizan en ítems activos    | Agente no puede resolver nombre o IP del Server Active        | Revisa logs del agente     |

| Error “received invalid response”          | Hostname mal configurado (no coincide con el de la GUI)       | Hostname= incorrecto     |

| “Active check configuration error” en logs | El Server no reconoce al agente activo                        | No está definido en GUI    |

| Intervalos de datos erráticos              | Red intermitente, NAT no establecida, DNS mal                 | Validar logs, traceroute |


Ejemplos reales en producción

🧨 Caso 1 – Hostname incorrecto en agente activo

Síntoma:

Zabbix GUI muestra “No data” en todos los ítems activos.

El host está en línea y responde ping.

Causa:

Hostname=VM-Linux-001 en zabbix_agentd.conf

Pero en Zabbix GUI el host fue dado de alta como vm-linux-001.

→ No hay coincidencia exacta → Zabbix ignora los datos entrantes.

Solución:

Unificar el valor del Hostname= con el nombre del host en la GUI.

El campo Hostname no es decorativo, es la clave de enlace de datos activos.


🧨 Caso 2 – Puerto 10050 bloqueado

Síntoma:

Todos los ítems pasivos muestran “ZBX” gris, sin valores actualizados.

Pero el host está encendido.

Causa:

El firewall del host tiene cerrado el puerto TCP 10050 → Zabbix no puede hacer polling.

Solución:

Agregar regla:


sudo firewall-cmd --permanent --add-port=10050/tcp

sudo firewall-cmd --reload

🧨 Caso 3 – Agente activo sin resolución DNS

Síntoma:

El agente parece estar corriendo, pero en logs aparece:


cannot resolve [zabbix-server.infra.local]

active checks are not getting any data

Causa:

El valor en ServerActive= está mal escrito o no resolvible por el agente.

Solución:

Agregar la IP o corregir DNS en /etc/hosts o /etc/resolv.conf


️ Actividad técnica – Diagnóstico de agente

Se entrega un entorno simulado con 2 hosts:

  1. webserver01 (modo pasivo)

  2. appserver02 (modo activo)

Tareas del operador:

  • Verificar con zabbix_get que webserver01 responde en 10050

  • Leer log de appserver02 y validar si hay errores de conexión

  • Confirmar si Hostname= de ambos coincide con GUI

  • Indicar qué tipo de fallo puede estar presente si system.cpu.load muestra No data


🧠 Reflexión operativa

*“Un agente que responde no es garantía de que esté reportando correctamente.

Hay que validar: ¿qué modo usa?, ¿qué hostname tiene?, ¿a qué servidor se conecta?, ¿el firewall lo permite?”*


✅ Resultado esperado

  • El operador distingue entre agente activo y pasivo

  • Sabe identificar fallos comunes de configuración

  • Puede diagnosticar problemas usando herramientas básicas (zabbix_get, logs, ping, netstat)

  • Entiende que la configuración del agente es crítica y sensible a detalles


Checklist de evaluación del módulo

| Ítem                                                                    | Cumplido |

| ----------------------------------------------------------------------- | -------- |

| Distingue el modo pasivo y activo del agente                            | ✅ / ❌    |

| Sabe usar zabbix_get para pruebas de modo pasivo                      | ✅ / ❌    |

| Puede interpretar errores comunes en logs del agente                    | ✅ / ❌    |

| Identifica síntomas de puerto bloqueado, hostname incorrecto, o DNS mal | ✅ / ❌    |

| Realiza diagnóstico básico de conectividad y configuración              | ✅ / ❌    |