Zabbix 7.0 LTS completo con Docker Compose, armado como se despliega en clientes reales — no como los compose de juguete que abundan en GitHub:
- PostgreSQL + TimescaleDB particionado (el default oficial para history/trends — sin esto, un Zabbix con 200+ hosts se arrastra en meses)
- Grafana integrado con el datasource de Zabbix preconfigurado
- Backups de la base incluidos con rotación (un Zabbix sin backup de su DB es una bomba de tiempo)
- Healthchecks y depends_on correctos — el stack levanta en orden y se recupera solo ante reinicios
- Todo parametrizado por
.env
┌─────────────────┐ ┌──────────────────────┐
│ zabbix-frontend │────▶│ zabbix-server │───▶ polling agentes/SNMP
│ (nginx :8080) │ └──────────┬───────────┘
└─────────────────┘ │
┌─────────────────┐ ▼
│ Grafana │────▶ ┌──────────────────┐
│ (:3000) │ │ PostgreSQL 16 + │
└─────────────────┘ │ TimescaleDB │
└────────┬─────────┘
▼
┌──────────────────┐
│ backup (cron │──▶ dumps rotados
│ container) │ 7d/4sem/6m
└──────────────────┘
cp .env.example .env # completar passwords
docker compose up -d
# Frontend: http://localhost:8080 (Admin / zabbix — cambiarlo de inmediato)
# Grafana: http://localhost:3000| Detalle | Por qué importa |
|---|---|
TimescaleDB con timescaledb-tune |
Las tablas history* y trends* crecen sin freno; el particionado nativo es la diferencia entre un Zabbix ágil y uno que muere al año |
| Housekeeping deshabilitado para history/trends | Con TimescaleDB el housekeeping lo hace el particionado — dejar ambos activos duplica trabajo y traba la DB |
Backup container con pg_dump + rotación GFS |
La config de Zabbix (templates, hosts, maps) vive en la DB; perderla = reconstruir todo a mano |
| Healthcheck real de la DB antes de levantar el server | Sin esto, el primer boot falla en carrera y deja el schema a medias |
| Grafana + plugin Zabbix provisionado | Los dashboards ejecutivos se hacen en Grafana; Zabbix sigue siendo el motor de alertas |
| SNMP traps habilitado | Routers, switches, UPS — el 50% del monitoreo de infra física |
- Copiar
.env.examplea.envy generar passwords fuertes docker compose up -dy verificardocker compose ps(todo healthy)- Cambiar password de
Adminen el frontend - Configurar medios de alerta (email/Telegram) en Alerts → Media types
- Crear host groups por sitio/área del cliente
- Agregar hosts o configurar auto-registration (ver mi repo
zabbix-rescue-toolkitpara discovery) - Configurar el backup a destino externo (S3/NAS) — el dump local no alcanza
- Dashboards de Grafana para el cliente
- Hasta ~500 hosts / ~1k NVPS: este compose tal cual en un VPS de 4-8 GB
- Más grande: separar la DB a un host propio, agregar proxies Zabbix por sitio (los proxies bufferan datos si se corta el enlace)
MIT