Netdata: Observabilidad Full Stack con IA en Tiempo Real

Publicado por


netdata
Observabilidad

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.

Netdata ha sido reconocido por un estudio de la Universidad de Ámsterdam como la herramienta de monitorización más eficiente energéticamente para sistemas basados en Docker, superando a otras soluciones en uso de CPU, RAM y tiempo de ejecución.

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.

docker run -d –name=netdata \
-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.

bash <(curl -Ss https://my-netdata.io/kickstart.sh)

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 repo add netdata https://helm.netdata.cloud
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.

# En Child (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.

# Ejemplo exporting.conf para Prometheus remote write
[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.

# netdata.conf
[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.

# En instalador
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 pull netdata/netdata
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.

docker inspect –format='{{.State.Health.Status}}' netdata
# 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.

docker logs netdata –follow
# 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/.

tar -czf netdata-config-backup.tar.gz /etc/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

Apoya el canal GENBYTE

Sígueme en mis redes sociales

Dejar un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *