11. Modos de recolección - Push (sender, trapper) vs Pull (agent, SNMP)

Conocer los métodos de entrada de datos al sistema de monitoreo


Introducción técnica

Zabbix es flexible: puede preguntar por los datos (pull) o esperar a que se los envíen (push).

Comprender los modos de recolección permite:

  • Elegir el enfoque correcto según el entorno (firewalls, latencia, seguridad)

  • Diagnosticar fallas cuando los datos “no llegan”

  • Automatizar procesos que generan métricas o logs sin que Zabbix los consulte


🧠 Principio clave

*Zabbix no siempre tiene que buscar los datos.

Si el dato está listo en el host, puede simplemente empujarse.*


Comparativa técnica: Pull vs Push

| Modo     | ¿Quién inicia la conexión? | Tecnologías / ítems usados            | Canal habitual     | Casos de uso típicos                    |

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

| Pull | Zabbix Server o Proxy      | Zabbix agent, SNMP, HTTP agent  | TCP 10050, UDP 161 | Consulta periódica de recursos del host |

| Push | El host monitoreado        | zabbix_sender, ítems tipo trapper | TCP 10051          | Scripts, logs, datos generados al vuelo |


🧩 Modo Pull – Zabbix consulta (Polling)

🟩 Ejemplo:

  • Zabbix Server ejecuta:

get /host/web01/system.cpu.util[,user]
  • El host responde con: 36.2

Tecnologías incluidas:

  • Zabbix agent (passive)

  • SNMP

  • IPMI

  • HTTP agent (chequeo de APIs)

  • Simple check (ping, puerto TCP)

Ventajas:

  • No requiere que el host tenga lógica ni proactividad

  • Revisión centralizada

  • Facilidad de diagnóstico con zabbix_get

Riesgos:

  • Firewall bloqueando puertos de entrada

  • Red saturada o lenta → ítems no responden a tiempo

  • En entornos NAT, el Server no puede “ver” al host

    El modo pull requiere que el host esté expuesto en red.


🧩 Modo Push – El host envía los datos (Emisión)

🟦 Mecanismos:

  • zabbix_sender: ejecutable que envía datos manual o automáticamente

  • Ítems tipo trapper: el Server espera datos sin preguntar


🧪 Sintaxis de zabbix_sender


zabbix_sender -z <ip_server> -p 10051 -s "webserver-01" -k "metric.nombre" -o 72.5

Parámetros:

  • -z: IP del Zabbix Server o Proxy

  • -s: nombre EXACTO del host en Zabbix GUI

  • -k: nombre del ítem tipo trapper

  • -o: valor a enviar

✅ Requiere que:

  • El ítem exista

  • Sea del tipo Zabbix trapper

  • El nombre del host coincida con el frontend


🧩 Ejemplo completo de uso de trapper

  1. En GUI → crear ítem:

Type: Zabbix trapper  

Key: custom.logins.today  

Host: appserver-01  
  1. En el host:

logins_today=$(grep "login" /var/log/app.log | wc -l)

zabbix_sender -z 10.10.1.30 -s "appserver-01" -k custom.logins.today -o $logins_today
  1. Zabbix recibe el dato y lo guarda inmediatamente.

🧩 ¿Cuándo usar Push?

| Caso operativo                            | ¿Por qué conviene usar Push (trapper/sender)?          |

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

| Script local genera una métrica puntual   | Solo el host sabe cuándo y qué enviar                  |

| Alta latencia o NAT                       | El host puede salir, pero no es accesible desde afuera |

| Recolección desde procesos internos       | El agente no puede acceder, pero un script sí          |

| Automatización masiva (DevOps, pipelines) | Zabbix actúa como receptor central                     |


⚠️ Errores comunes con zabbix_sender

| Síntoma                       | Causa probable                                      | Solución                                  |

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

| “ZABBIX_ERROR: No such host” | -s no coincide con ningún host registrado         | Usar nombre exacto, sensible a mayúsculas |

| “ZABBIX_ERROR: No such item” | El -k no coincide con un ítem tipo trapper        | Crear ítem correctamente                  |

| Dato nunca aparece            | El ítem no está habilitado, host está deshabilitado | Verificar GUI                             |

| Falla de conexión             | IP incorrecta o puerto 10051 bloqueado              | Validar con telnet, revisar firewall    |


🧠 Reflexión operativa

El operador de Zabbix debe saber cuándo es mejor esperar los datos, y cuándo permitir que los datos lleguen por sí solos.

El push permite abrir Zabbix a cualquier sistema que pueda ejecutar un comando. Es clave para monitoreo dinámico y personalizado.


✅ Resultado esperado

  • El operador diferencia claramente pull (polling) de push (trapper/sender)

  • Sabe cuándo aplicar cada uno según el entorno de red y requerimientos

  • Puede crear un ítem tipo trapper y recibir datos con zabbix_sender

  • Entiende que los datos push no se generan solos, dependen del sistema externo