Netdata: Monitorización de rendimiento en tiempo real
Introducción
Netdata es una plataforma de monitorización orientada a métricas en tiempo real con granularidad por segundo. Está diseñada para ofrecer visibilidad inmediata del estado de un sistema sin necesidad de configurar previamente dashboards complejos ni pipelines de recolección externos.
Su enfoque se basa en un agente ligero que se ejecuta en cada nodo y expone una interfaz web con cientos de métricas ya organizadas: CPU, memoria, I/O, red, procesos, contenedores, servicios y múltiples integraciones adicionales. En este despliegue se utiliza en modo autónomo, con posibilidad de vinculación opcional a Netdata Cloud para centralización.
Enfoque general / Arquitectura
El despliegue se realiza mediante un único contenedor Docker que opera con acceso profundo al host:
- Uso de
network_mode: hostpara eliminar traducciones de red y simplificar exposición. - Uso de
pid: hostpara acceder al espacio de procesos del sistema. - Capacidades adicionales (
SYS_PTRACE,SYS_ADMIN) para permitir recopilación avanzada de métricas. - Montaje de múltiples rutas del host en modo solo lectura para inspección de
/proc,/sys, logs y sistema de archivos.
Este enfoque prioriza visibilidad completa sobre aislamiento estricto del contenedor. Está pensado para entornos controlados donde el objetivo es diagnóstico detallado.
Adicionalmente, se habilita el acceso al socket de Docker para permitir monitorización de contenedores y, si existe hardware NVIDIA, se reserva acceso a dispositivos GPU para exponer métricas de aceleración.
Requisitos previos
- Host Linux con Docker operativo.
- Acceso al socket Docker si se desean métricas de contenedores.
- Drivers NVIDIA correctamente instalados en caso de querer métricas de GPU.
- Token de vinculación si se va a integrar con Netdata Cloud.
Desarrollo
Qué se hizo y por qué
Se opta por modo host en red y PID para evitar limitaciones habituales de contenedorización que impiden ver procesos reales, estadísticas completas de red o métricas del kernel.
Los volúmenes persistentes (/etc/netdata, /var/lib/netdata, /var/cache/netdata) permiten conservar configuración, base de datos interna de métricas y caché entre reinicios.
El montaje del sistema raíz del host en modo solo lectura facilita inspección completa sin modificar el sistema subyacente.
La vinculación con Netdata Cloud se realiza mediante variables de entorno, lo que evita configuraciones manuales posteriores y permite centralizar múltiples nodos en un único panel externo.
Configuración utilizada
El archivo completo de despliegue se encuentra versionado en Gitea:
No se incrusta aquí para mantener coherencia con el repositorio como fuente única de verdad.
Validación
Comprobaciones básicas tras el arranque:
- Acceso web disponible en
http://<IP_DEL_SERVIDOR>:19999. - Visualización inmediata de métricas de CPU, memoria y red.
- Sección de contenedores visible si el socket Docker está correctamente montado.
- Métricas de GPU disponibles si el host dispone de hardware NVIDIA y drivers funcionales.
- Logs del contenedor sin errores críticos relacionados con permisos o acceso a
/proc.
Decisiones importantes
- El uso de
SYS_ADMINyapparmor:unconfinedamplía superficie de permisos. Se asume entorno controlado. - El modo
hostevita conflictos de puertos pero elimina aislamiento de red. - No se expone detrás de proxy en esta configuración básica; puede integrarse posteriormente con Caddy si se desea autenticación adicional.
Resumen breve
Netdata proporciona monitorización inmediata y de alta granularidad con un despliegue mínimo. La configuración adoptada prioriza visibilidad completa del host y contenedores, con persistencia y opción de centralización en la nube. Ideal como herramienta de diagnóstico rápido y análisis en tiempo real sin necesidad de construir dashboards desde cero.