monitoreo
Zabbix
``
- Zabbix Docker images
- GitHub - zabbix/zabbix-docker: Official Zabbix Dockerfiles
- Zabbix - Wikipedia
- GitHub - zabbix/zabbix
- Video YouTube: Zabbix desde cero
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
- Objeto monitoreado → (Agent / SNMP / API / etc.)
- Datos enviados a Zabbix Server
- Procesamiento de triggers y eventos
- Almacenamiento en base de datos
- 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-serverzabbix-web-nginx-mysqlozabbix-web-apachezabbix-agentmysql/postgreszabbix-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
- Ej:
- 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)
¿Te gusta este contenido? Suscríbete vía RSS