Netdata: Observabilidad Full Stack con IA en Tiempo Real
Monitorización de infraestructura por segundo, sin configuración compleja y con detección de anomalías mediante machine learning en el edge
Vídeo tutorial en YouTube
Mira el vídeo completo sobre cómo instalar y usar Netdata: Observabilidad Full Stack con IA en Tiempo Real en el canal GENBYTE:
¿Qué es Netdata: Observabilidad Full Stack con IA en Tiempo Real?
Netdata es una plataforma de monitorización de infraestructura open source que proporciona observabilidad en tiempo real con recopilación de métricas por segundo. Diseñado para equipos reducidos y entornos de cualquier escala, el agente Netdata se ejecuta directamente en los nodos monitorizados, auto-descubriendo automáticamente sistemas, contenedores, aplicaciones, hardware y servicios sin configuración manual. Su arquitectura distribuida procesa los datos en el edge, manteniendo la información en la infraestructura del usuario y evitando la centralización obligatoria de métricas. El proyecto es miembro de la CNCF y cuenta con más de 81.000 estrellas en GitHub, siendo una de las soluciones más adoptadas en el panorama de observabilidad cloud-native.
Características principales
Recopilación en tiempo real por segundo
Netdata captura y visualiza métricas con resolución de un segundo, ofreciendo latencia de visualización de 1 segundo y actualizaciones instantáneas sin muestreo ni agregación.
Cero configuración y auto-descubrimiento
El agente detecta automáticamente más de 800 integraciones: sistema operativo, contenedores, bases de datos, servidores web, hardware, sensores, logs y proveedores cloud sin intervención manual.
Machine Learning en el edge
Entrena modelos de ML no supervisados por métrica directamente en el nodo, permitiendo detección de anomalías automática, reconocimiento de patrones y puntuación de correlación sin enviar datos a servidores centrales.
Almacenamiento eficiente con retención por niveles
Base de datos de series temporales de alto rendimiento que consume ~0,5 bytes por muestra con almacenamiento por niveles: resolución por segundo (nivel 0), por minuto (nivel 1) y por hora (nivel 2), consultados automáticamente según el zoom.
Visualización automática sin lenguaje de consultas
Dashboards interactivos generados automáticamente mediante el modelo de datos NIDL, permitiendo explorar, filtrar y correlacionar métricas sin escribir queries.
Escalabilidad horizontal nativa
Arquitectura Parent-Child que permite centralizar dashboards, alertas y almacenamiento a largo plazo, escalando a millones de métricas por segundo con hardware adecuado.
Alertas integradas y notificaciones multi-canal
Cientos de alertas preconfiguradas con soporte para email, Slack, Telegram, PagerDuty, Discord, Microsoft Teams y webhooks personalizados.
Gestión de logs integrada
Ingesta directa de systemd-journald en Linux y Windows Event Log/ETW en Windows, con procesamiento en el edge y visualización enriquecida en la misma interfaz.
Requisitos del sistema
- Linux (cualquier distribución moderna con systemd o OpenRC)
- macOS (Intel y Apple Silicon)
- FreeBSD
- Windows (mediante WSL2 o instalación nativa experimental)
- Docker Engine 20.10+ para despliegue en contenedor
- Kubernetes 1.20+ para despliegue en clúster
- Mínimo ~150 MiB RAM y ~5% CPU en configuración por defecto
- Puertos: 19999 (UI web), 19999 (streaming entre nodos Parent-Child)
Instalación con Docker Compose
Instalación con Docker (imagen oficial)
La imagen oficial netdata/netdata está disponible en Docker Hub y GitHub Container Registry. El Dockerfile multi-stage compila desde fuente con dependencias preinstaladas y expone el puerto 19999. Se ejecuta como usuario no root (UID/GID 201) con healthcheck integrado.
-p 19999:19999 \
–cap-add=SYS_PTRACE \
–security-opt apparmor=unconfined \
-v /proc:/host/proc:ro \
-v /sys:/host/sys:ro \
-v /var/run/docker.sock:/var/run/docker.sock:ro \
–restart unless-stopped \
netdata/netdata
Instalación one-liner en Linux (recomendada)
El script netdata-installer.sh detecta la distribución, instala dependencias y configura el servicio systemd automáticamente. Soporta canal stable o nightly y opciones para deshabilitar telemetría.
Despliegue en Kubernetes
Disponible como Helm chart oficial y operador para Kubernetes. Permite monitorizar el clúster, nodos, pods y aplicaciones con auto-descubrimiento de servicios anotados.
helm install netdata netdata/netdata \
–set clusterName=mi-cluster \
–set token=MI_TOKEN_CLOUD
Acceder al proyecto
Interfaz web local
Accesible en http://localhost:19999 o http://<IP_NODO>:19999 tras la instalación. La UI se sirve vía CDN en la versión estándar y está incluida en el paquete Docker.
Netdata Cloud (opcional)
Registro gratuito en https://app.netdata.cloud/sign-in para acceso remoto, dashboards multi-nodo, RBAC, configuración centralizada de alertas y colectores. Los datos permanecen en la infraestructura del usuario.
API REST para integraciones
Endpoints para consultar métricas, alertas, metadatos y salud del agente. Documentación en https://learn.netdata.cloud/docs/netdata-agent/api
Casos de uso
- Monitorización completa de servidores Linux, Windows, macOS y FreeBSD: CPU, memoria, discos, red, sensores hardware (GPU, ventiladores, temperaturas, SMART, IPMI, RAPL)
- Observabilidad de contenedores Docker, containerd, LXC/LXD y Kubernetes con auto-descubrimiento de pods y métricas de cgroups
- Monitorización de máquinas virtuales KVM/QEMU, libvirt, Proxmox y Hyper-V desde el host
- Supervisión de bases de datos: PostgreSQL, MySQL, MongoDB, Redis y decenas más mediante colectores integrados
- Monitorización de servidores web y proxies: nginx, Apache, HAProxy, Traefik, Caddy
- Infraestructura cloud: AWS, GCP, Azure mediante colectores específicos y OpenMetrics/StatsD
- Checks sintéticos: HTTP/HTTPS, TCP, ping, certificados TLS, DNS, APIs personalizadas
- Análisis de logs: systemd-journald, Windows Event Log, ETW con parsing y visualización en tiempo real
- Detección de anomalías automática sin configuración de umbrales estáticos
- Correlación de métricas entre capas de la pila (infraestructura, plataforma, aplicación) mediante scoring engine
Configuración avanzada
Configuración Parent-Child para centralización
Permite enviar métricas en streaming desde agentes Child a nodos Parent para dashboards unificados, retención extendida y alertas centralizadas. Configuración en /etc/netdata/stream.conf.
[stream]
enabled = yes
destination = parent-host:19999
api key = UUID_COMPARTIDO
# En Parent (stream.conf)
[API_KEY]
enabled = yes
default history = 3600
default memory mode = ram
health enabled by default = auto
Exportación a sistemas externos
Soporte nativo para exportar métricas a Prometheus (remote write), InfluxDB, OpenTSDB, Graphite, Kafka, MQTT y otros. Configuración en /etc/netdata/exporting.conf.
[prometheus:my_prom]
enabled = yes
url = http://prometheus:9090/api/v1/write
source = netdata
send charts matching = *
send names instead of ids = yes
Modos de almacenamiento para optimizar I/O
Tres modos de disco: 'dbengine' (por defecto, tiered con compresión ZSTD), 'ram' (solo memoria, sin escrituras en disco) y 'alloc' (pre-asignación). Configurable en netdata.conf [global] > memory mode.
[global]
memory mode = dbengine
# memory mode = ram # para cero escrituras en disco
# memory mode = alloc # pre-asignación fija
Deshabilitar telemetría anónima
La telemetría anónima puede desactivarse en la instalación o en runtime creando un archivo de opt-out.
bash kickstart.sh –disable-telemetry
# En runtime
echo 1 > /etc/netdata/.opt-out-from-anonymous-statistics
systemctl restart netdata
Gestión y mantenimiento
Actualización del agente
En Docker: pull de la nueva imagen y recreación del contenedor. En Linux: re-ejecutar el kickstart.sh o usar el gestor de paquetes del sistema. Netdata Cloud notifica versiones disponibles.
docker stop netdata && docker rm netdata
# volver a ejecutar docker run con mismos parámetros
Healthcheck y monitorización del propio Netdata
El contenedor incluye healthcheck cada 60 segundos. La UI expone una sección 'Netdata Monitoring' con métricas internas de CPU, memoria, disco, colectores y latencia de la base de datos.
# En UI: menú derecho > Netdata Monitoring
Gestión de logs del agente
Logs redirigidos a stdout/stderr en contenedor (access.log, debug.log, error.log, collector.log, health.log). En host: /var/log/netdata/ con rotación automática.
# En host
journalctl -u netdata -f
Backup y migración de configuración
Configuración en /etc/netdata/. Copia de seguridad de netdata.conf, stream.conf, exporting.conf, health_alarm_notify.conf y directorios cloud.d, python.d, go.d. Los datos métricos en /var/lib/netdata/ y /var/cache/netdata/.
# Para migración completa incluir /var/lib/netdata/cloud.d (claves cloud)
Stack técnico
- Go (núcleo del agente y plugins modernos)
- C (colectores de sistema y plugins de alto rendimiento)
- Python (plugins go.d y colectores legacy)
- Node.js (UI dashboard servida vía CDN)
- Docker (imagen oficial multi-arch: amd64, arm64)
- Kubernetes (Helm chart, operador, CRDs)
- systemd / OpenRC (gestión de servicio en host)
- eBPF (opcional, para monitorización kernel avanzada)
- OpenTelemetry (soporte experimental via otel-plugin)
- Prometheus (remote write export y scraping)
- ZSTD (compresión de base de datos)
- GNU Autotools / CMake (sistema de build)
Referencias oficiales
- Repositorio oficial GitHub: https://github.com/netdata/netdata
- Documentación oficial (Netdata Learn): https://learn.netdata.cloud
- Página principal y demo en vivo: https://www.netdata.cloud
- Netdata Cloud (registro gratuito): https://app.netdata.cloud/sign-in
- Guía de instalación Docker: https://github.com/netdata/netdata/tree/master/packaging/docker
- Instalación one-liner Linux: https://learn.netdata.cloud/docs/installing/one-line-installer-for-all-linux-systems
- Despliegue en Kubernetes: https://learn.netdata.cloud/docs/installation/install-on-specific-environments/kubernetes
- Comparativa Netdata vs Prometheus: https://www.netdata.cloud/blog/netdata-vs-prometheus-2025/
- Estudio eficiencia energética Universidad de Ámsterdam: https://www.ivanomalavolta.com/files/papers/ICSOC_2023.pdf
- Comunidad: Discord, Foro, GitHub Discussions: https://discord.com/invite/2mEmfW735j
- Licencia GPL-3.0 (Agente Netdata): https://github.com/netdata/netdata/blob/master/LICENSE
Apoya el canal GENBYTE
¿Te ha sido útil este contenido?
Suscríbete a YouTube
Newsletter GENBYTE
Ko-fi
Contacto: [email protected]
