Monitoreo Proactivo de Infraestructura: Visibilidad Total con Grafana e InfluxDB
En la administración de infraestructura moderna, lo que no se mide no se puede mejorar. Recientemente implementé un ecosistema de monitoreo que centraliza la salud de la red, la disponibilidad de servicios y el estado de servidores críticos (Proxmox, NAS, NVR) en un solo panel de control.
🏗️ El Stack Tecnológico (The Monitoring Stack)
Para lograr una solución profesional y escalable, utilizamos una arquitectura basada en contenedores y series temporales:
- Grafana: El motor de visualización y alertas.
- InfluxDB (v2): Base de datos optimizada para métricas de alto rendimiento.
- Uptime Kuma: Motor de chequeo HTTP/TCP/ICMP para disponibilidad de servicios.
- Speedtest Tracker: Monitoreo constante del SLA del ISP (Ancho de banda y Latencia).
- Telegraf (Opcional): Agente para extraer métricas directas del hardware (CPU, RAM, Temperaturas de Proxmox).
🚀 Guía de Implementación Paso a Paso
1. Despliegue de la Infraestructura (Docker Compose)
Utilizaremos un archivo docker-compose.yml robusto, definiendo volúmenes persistentes y redes aisladas para mayor seguridad.
YAML
services:
influxdb:
image: influxdb:2.7
container_name: monitoring-db
restart: unless-stopped
ports:
- "8086:8086"
volumes:
- ./influxdb/data:/var/lib/influxdb2
grafana:
image: grafana/grafana-oss:latest
container_name: monitoring-gui
restart: unless-stopped
depends_on:
- influxdb
ports:
- "3000:3000"
volumes:
- ./grafana/data:/var/lib/grafana
uptime-kuma:
image: louislam/uptime-kuma:1
container_name: uptime-monitor
restart: unless-stopped
volumes:
- ./uptime-kuma/data:/app/data
speedtest-tracker:
image: alexjustesen/speedtest-tracker:latest
container_name: network-monitor
ports:
- "8080:80"
environment:
- CHART_DATAPOINTS=24
2. Configuración de la "Single Source of Truth"
Una vez levantados los servicios, el flujo de datos es el siguiente:
- En InfluxDB: Crea un Bucket llamado
infrastructurey genera un API Token con permisos de escritura. - En Speedtest Tracker: Ve a Configuraciones -> Exportar y vincula InfluxDB usando el Token generado. Esto nos dará visibilidad real sobre si el ISP está cumpliendo con los simétricos contratados.
3. Monitoreo de Disponibilidad (Health Checks)
En Uptime Kuma, configura monitores para tus servicios críticos:
- Proxmox/NAS: Chequeo via ICMP (Ping) o TCP puerto 8006.
- NVR/Cámaras: Monitoreo del puerto RTSP o HTTP del grabador.
- Tip Profesional: Configura una "Notification Strategy" hacia Telegram o Discord directamente desde Kuma para recibir alertas instantáneas si un servicio cae.
4. Creación del Dashboard en Grafana
Conecta Grafana a InfluxDB mediante el lenguaje Flux. Aquí un ejemplo de cómo extraer la latencia (Ping) para tu gráfica principal:
Fragmento de código
from(bucket: "infrastructure")
|> range(start: v.timeRangeStart, stop: v.timeRangeStop)
|> filter(fn: (r) => r["_measurement"] == "ping")
|> filter(fn: (r) => r["_field"] == "jitter" or r["_field"] == "latency")
|> aggregateWindow(every: v.windowPeriod, fn: mean, createEmpty: false)
|> yield(name: "mean")


🛡️ Conclusión y Valor Agregado
Este setup no es solo estético; permite identificar cuellos de botella en la red antes de que los usuarios reporten lentitud y asegura que los sistemas de seguridad (NVR) estén operativos 24/7.
¿Qué sigue? El siguiente nivel de profesionalismo es implementar SNMP para monitorear switches y firewalls, integrando todo en este mismo panel.