Zabbix

``

monitoreo Redes

Descripción General

Zabbix es una plataforma de monitoreo de código abierto orientada a infraestructuras complejas: redes, servidores, bases de datos, aplicaciones, contenedores, servicios cloud y dispositivos IoT. Permite recopilar métricas en tiempo real, generar alertas, visualizar datos y automatizar acciones ante eventos.

Arquitectura de Zabbix

La arquitectura es modular y escalable, diseñada para entornos distribuidos.

Componentes Clave

  • Zabbix Server
    • Componente central que recibe, procesa y almacena métricas.
    • Gestiona triggers, eventos, acciones, notificaciones y consultas históricas.
  • Base de Datos
    • Guarda configuración, histórico de métricas y eventos.
    • Puede usar MySQL/MariaDB, PostgreSQL, SQLite, Oracle o TimescaleDB para optimización de series temporales.
  • Frontend Web
    • Basado en PHP.
    • Dashboard, gráficas, mapas, mapas de red, vistas de eventos y configuración.
  • Zabbix Agents
    • Se instalan en hosts para recolectar métricas activamente o pasivamente.
    • Soporta Windows, Linux, macOS y otros.
  • Zabbix Proxy
    • Permite escalar monitoreo distribuido.
    • Ideal para redes remotas, sitios con conectividad limitada o segmentación lógica de la infraestructura.
  • Exporters / Integraciones
    • SNMP, IPMI, WMI, JMX, HTTP checks, SSH, Telnet, scripts personalizados, integración con contenedores, nube, APIs.

Flujo General

  1. Objeto monitoreado → (Agent / SNMP / API / etc.)
  2. Datos enviados a Zabbix Server
  3. Procesamiento de triggers y eventos
  4. Almacenamiento en base de datos
  5. Visualización y alertas en el frontend

Funcionalidades Principales

Recolección de Métricas

  • Agente activo/pasivo
  • SNMP (v1, v2, v3)
  • Descubrimiento automático (LLD)
  • Chequeos web (latencia, estado, contenido)
  • Ejecución remota de comandos
  • Recolección vía scripts propios (bash, python, powershell)

Visualización

  • Dashboards personalizables
  • Gráficos de series temporales
  • Mapas de red dinámicos
  • Geomapas
  • Vistas personalizadas por equipos, integraciones o servicios

Alertas y Automatización

  • Triggers basados en expresiones flexibles
  • Notificaciones por email, Slack, Telegram, webhooks
  • Acciones automáticas condicionadas (escalar alertas, ejecutar scripts)
  • Mantenimiento programado

Escalabilidad y Alta Disponibilidad

  • Zabbix Proxy distribuye carga y mejora resiliencia
  • Base de datos optimizable para grandes volúmenes de datos
  • Compatible con clustering mediante HA externo (Pacemaker, Kubernetes, etc.)

Casos de Uso

  • Monitoreo de servidores Linux/Windows
  • Seguimiento de rendimiento de bases de datos (MySQL, PostgreSQL, Oracle)
  • Monitoreo de infra en contenedores y orquestadores (Docker, Kubernetes)
  • Observabilidad de aplicaciones (APM básico mediante agentes/scripts)
  • Monitoreo de routers, switches, firewalls vía SNMP
  • Integración con nubes: AWS, Azure, GCP
  • Control de SLA y uptime de servicios web

Instalación y Deploy

Métodos

  • Instalación tradicional nativa (paquetes .deb/.rpm).
  • Contenedores (imagen oficial).
  • Helm charts/Kubernetes.
  • Instalación distribuida con proxies remotos.

Docker (Resumen)

  • Contenedores para:
    • zabbix-server
    • zabbix-web-nginx-mysql o zabbix-web-apache
    • zabbix-agent
    • mysql/postgres
    • zabbix-proxy
  • Repositorio oficial: github.com/zabbix/zabbix-docker

Configuración y Operación

Tipos de Ítems (Items)

  • Métricas del agente
  • Métricas SNMP
  • Chequeos externos
  • Scripts
  • Métricas dependientes
  • Trapper (cuando otros sistemas envían datos a Zabbix)
  • HTTP Agent (API REST remota)

Triggers

  • Evaluaciones automáticas basadas en expresiones:
    • Ej: avg(last_5m)>80
  • Soporta dependencias, severidades y corrección automática.

Plantillas (Templates)

  • Colecciones de ítems, triggers, gráficos y reglas de descubrimiento.
  • Permiten estandarizar monitoreo.
  • Repositorio oficial: Zabbix Share.

Integraciones Importantes

  • Webhooks hacia Slack, Discord, Telegram, Teams.
  • APIs REST (gestión completa: hosts, ítems, templates, dashboards).
  • Exporters para Prometheus o métricas externas.
  • Scripts para automatización DevOps.

Buenas Prácticas

  • Usar proxies para entornos distribuidos.
  • Activar Housekeeper optimizado o usar TimescaleDB.
  • Evitar ítems de recolección cada 1 segundo excepto casos críticos.
  • Separar la base de datos en servidor dedicado para alta carga.
  • Versionar configuraciones mediante exportación JSON.
  • Automatizar despliegues con Ansible/Terraform.

Ejemplos de Código

Ejemplo: API REST — Obtener Hosts

curl -X POST -H "Content-Type: application/json" \
-d '{
	"jsonrpc": "2.0",
	"method": "host.get",
	"params": {
		"output": ["hostid", "host"]
	},
	"id": 1,
	"auth": "TOKEN_AQUI"
}' http://zabbix.example.com/api_jsonrpc.php

`

Ejemplo: Configuración de Item SNMP

snmpwalk -v2c -c public 192.168.1.10

Recursos Adicionales

  • Documentación oficial: zabbix.com/documentation
  • Comunidad y foros
  • Zabbix Summit
  • Zabbix Share (templates de la comunidad)