Cómo instalar Netdata en Docker - Monitoreo real-time autohospedado en Docker

Netdata | Monitoring | Docker

Netdata: Monitoreo real-time per-segundo autohospedado en Docker con cero configuración (alternativa Prometheus+Grafana)

Monitoreo real-time per-segundo. Auto-detección cero config. Detección ML anomalías. 400+ alertas pre-configuradas. Docker containers auto-descubiertos. 1-3% CPU, 100-300MB RAM ultra-ligero. eBPF, systemd-journal, funciones navegador. Netdata Cloud opcional. AGPL-3.0 open source.

¿Qué es Netdata?


Netdata es una plataforma de monitoreo real-time de infraestructura diseñada para capturar miles de métricas por segundo con auto-detección total y cero configuración, reemplazando completamente pilas como Prometheus+Grafana+Alertmanager por un único agente inteligente. Es la opción definitiva para homelabs que quieren visibilidad total sin engineering overhead.

Propuesta clave: Métricas per-segundo (no 15-60 segundos como otros). Auto-detección total (servicios, containers, aplicaciones). Cero configuración (install y listo). 400+ alertas pre-configuradas. ML anomaly detection (18 k-means models por métrica). Dashboard automático interactivo. Browser-based troubleshooting (reemplaza SSH). Integración container auto (labels, Docker socket). eBPF para network tracing. Systemd-journal y logs sin centralizados. Time-series database dbengine (comprime weeks en GB). Escalable multi-host (parent/child streaming). Netdata Cloud opcional (observabilidad centralizada). API REST completa. Exporters (Prometheus, JSON, etc). 1-3% CPU, 100-300MB RAM ultra-ligero.

Características principales: Métricas per-segundo (1000+ por segundo). Auto-detección (servicios, containers, apps, logs, APIs, synthetic checks). Zero-config (install y funciona). Pre-built dashboards (sin Grafana). 400+ alertas (Slack, PagerDuty, Teams, email, webhooks). ML anomaly detection (no config, 99% false positive reduction). Per-container metrics (CPU/RAM/network/disk). Per-process monitoring (top replacement). Browser-based functions (shell, netstat, logs, sin SSH). Systemd-journal integration (log correlation). eBPF collectors (network, syscall tracing). Custom metrics (StatsD, OpenMetrics). Parent/child streaming architecture (multi-host). Netdata Cloud integration (optional). Metrics exporting (Prometheus, JSON, etc). Custom alerts (Bash scripts). dbengine tiered storage (3 tiers: second/minute/hour). Health checks auto. Reverse proxy support (Caddy). API v1 + v2 (REST). Multiarch (amd64, armv7, arm64, Raspberry Pi). AGPL-3.0 open source. 80K+ GitHub stars.

Para homelabs: Monitoreo profesional sin complejidad. Real-time. Automático. Inteligente. Un agente reemplaza stack entero.

Características principales

Métricas per-segundo real-time

1000+ metrics/seg. Vs 15-60 seg otros tools. Granularidad máxima.

Auto-detección total cero config

Servicios, containers, apps. Install y funciona. Listo.

400+ alertas pre-configuradas

CPU, RAM, disk, network. Thresholds inteligentes. Listas usar.

ML anomaly detection

18 k-means models por métrica. 99% false positive reduction.

Auto-generated dashboards

Gráficos interactivos automáticos. Sin Grafana. Scroll, zoom.

Browser-based troubleshooting

Shell, netstat, systemd, container logs. Reemplaza SSH.

Per-container monitoring

Auto-descubre todos containers. CPU, RAM, network, disk. Instant.

eBPF collectors

Network tracing, syscall, file I/O. Profundidad kernel.

Systemd-journal integration

Logs correlacionados con métricas. Sin pipelines centralizadas.

Multi-host streaming

Parent/child architecture. Agregación centralizada. Escalable.

Netdata Cloud (opcional)

Observabilidad centralizada SaaS. Zero data egress. Metadata only.

Ultra-ligero 1-3% CPU

100-300MB RAM. Comprime weeks en GB. dbengine. Eficiente.

Requisitos del sistema

  • Docker & Docker Socket (/var/run/docker.sock accesible)
  • 200 MB - 500 MB RAM mínimo (típicamente 100-300MB)
  • 1-5 GB espacio disco (depende retention policy, default 14 días per-second)
  • Puerto 19999 (configurable)
  • Capacidades Linux (SYS_PTRACE, SYS_ADMIN para eBPF)
  • Host filesystem mounts (para monitoreo sistema: /proc, /sys, /etc, /var/log)
  • Volúmenes persistentes (/etc/netdata, /var/lib/netdata, /var/cache/netdata)
  • Navegador moderno (Chrome, Firefox, Safari, Edge)
  • Opcional: Netdata Cloud account (para multi-host centralizado)
Setup ultra-simple: Un docker-compose.yml. 30 segundos a metrics real-time.

Instalación con Docker Compose

Opción 1: Docker Compose básico (recomendado)

cat > docker-compose.yml << 'EOF' version: '3.8' services: netdata: image: netdata/netdata:stable container_name: netdata hostname: docker-host restart: unless-stopped pid: host network_mode: host cap_add: - SYS_PTRACE - SYS_ADMIN security_opt: - apparmor:unconfined volumes: # Persistencia config + data - netdataconfig:/etc/netdata - netdatalib:/var/lib/netdata - netdatacache:/var/cache/netdata # Host filesystem (read-only) para monitoreo - /:/host/root:ro,rslave - /etc/passwd:/host/etc/passwd:ro - /etc/group:/host/etc/group:ro - /etc/localtime:/etc/localtime:ro - /proc:/host/proc:ro - /sys:/host/sys:ro - /etc/os-release:/host/etc/os-release:ro - /var/log:/host/var/log:ro # Docker socket para container auto-discovery - /var/run/docker.sock:/var/run/docker.sock:ro environment: - TZ=Europe/Madrid # Deshabilita tracking anónimo - DO_NOT_TRACK=1 volumes: netdataconfig: netdatalib: netdatacache: EOF docker compose up -d

Opción 2: Con Netdata Cloud (centralizado)

cat > docker-compose.yml << 'EOF' version: '3.8' services: netdata: image: netdata/netdata:stable container_name: netdata hostname: docker-host restart: unless-stopped pid: host network_mode: host cap_add: - SYS_PTRACE - SYS_ADMIN security_opt: - apparmor:unconfined volumes: - netdataconfig:/etc/netdata - netdatalib:/var/lib/netdata - netdatacache:/var/cache/netdata - /:/host/root:ro,rslave - /etc/passwd:/host/etc/passwd:ro - /etc/group:/host/etc/group:ro - /etc/localtime:/etc/localtime:ro - /proc:/host/proc:ro - /sys:/host/sys:ro - /etc/os-release:/host/etc/os-release:ro - /var/log:/host/var/log:ro - /var/run/docker.sock:/var/run/docker.sock:ro environment: - TZ=Europe/Madrid - DO_NOT_TRACK=1 # Netdata Cloud (opcional) - NETDATA_CLAIM_TOKEN=tu_token_aqui - NETDATA_CLAIM_URL=https://app.netdata.cloud - NETDATA_CLAIM_ROOMS=tu_room_id volumes: netdataconfig: netdatalib: netdatacache: EOF docker compose up -d

Acceder (inicio)

http://localhost:19999 - Dashboard Netdata (métricas real-time)

Primer setup (30 segundos)

  1. Abre http://localhost:19999
  2. ¡Listo! Dashboard aparece con métricas en vivo
  3. Scroll hacia abajo para ver: CPU, RAM, Disk, Network, Containers, Processes
  4. Cada métrica actualiza cada segundo
  5. Cero configuración necesaria

Primeros pasos

1. Explorar dashboard principal

  1. Abre http://localhost:19999
  2. Verás: System Overview (CPU, RAM, Load, Uptime)
  3. Scroll abajo: CPU cores, interrupts, RAM usage, Disk, Network
  4. Cada chart actualiza cada segundo

2. Ver Docker containers monitoreados

  1. Dashboard → "Containers" sección
  2. Todos tus containers aparecen listados
  3. Per-container: CPU, RAM, network bytes, disk I/O
  4. Auto-detecta cualquier container nuevo en 1 segundo

3. Monitoreo procesos (reemplaza 'top')

  1. Dashboard → "Processes" sección
  2. Procesos orderados por CPU/RAM
  3. Click proceso → detalles (tiempo syscall, network connections)
  4. Histórico completo disponible

4. Alertas pre-configuradas

  1. Settings → Alerts (engranaje)
  2. 400+ alertas pre-configuradas (CPU >80%, RAM >80%, Disk full, etc)
  3. Cada alerta: threshold, duration, severity
  4. Integraciones: Slack, PagerDuty, Teams, email, webhooks

5. Anomaly Advisor (IA detección)

  1. Dashboard → "Anomalies" tab (si habilitado)
  2. ML correlaciona miles de métricas
  3. Identifica root cause automático
  4. Sin config, sin training data manual

6. Browser-based troubleshooting (reemplaza SSH)

  1. Dashboard → "Functions" (herramientas)
  2. Disponible: shell interactivo, netstat, systemd journal, container logs
  3. Ejecuta comandos sin SSH (seguro, auditado)
  4. Con histórico y ML anomaly detection

7. Ver container logs correlacionados

  1. Dashboard → Container específico → "Logs"
  2. Systemd-journal automático
  3. Correlaciona con spikes métricas (click spike → logs ese momento)

8. Cambiar tiempo de retención (storage)

  1. Docker exec bash en Netdata container
  2. Edit /etc/netdata/netdata.conf → [db] section
  3. storage tiers = 3 (second, minute, hour)
  4. dbengine multihost disk space MB = 1024 (etc)

9. Integrar con Netdata Cloud (multi-host)

  1. Crea cuenta app.netdata.cloud (free tier)
  2. Obtén claim token + room ID
  3. En docker-compose.yml: NETDATA_CLAIM_TOKEN + NETDATA_CLAIM_URL
  4. docker compose up -d
  5. Netdata aparece en Cloud dashboard centralizado

10. Exportar métricas (Prometheus, etc)

curl -s http://localhost:19999/api/v1/data # O Prometheus format curl -s http://localhost:19999/api/v1/allmetrics?format=prometheus

11. Listar todos charts/métricas

curl -s http://localhost:19999/api/v1/charts | python3 -m json.tool | head -50

12. Cambiar frecuencia recolección (si quieres reducir CPU)

docker exec netdata bash cd /etc/netdata && ./edit-config netdata.conf # En [global] section cambiar: update every = 2 # Default 1 (cada 1 segundo). Cambiar a 2-5 si necesario.

Casos de uso

  • Homelabs: Monitoreo completo sin engineering overhead. Una herramienta reemplaza stack entero.
  • DevOps/SREs: Real-time troubleshooting. Browser-based debugging sin SSH. Root cause analysis automático.
  • Multi-host infrastructure: Netdata Cloud centraliza múltiples agentes. Parent/child streaming. Escalable.
  • Container orchestration: Kubernetes, Docker Swarm. Per-pod/per-container métrics. Auto-discovery.
  • Reemplazo Prometheus+Grafana: Zero-config. Alertas pre-built. No PromQL. ML anomaly detection. Costo 90% menor.
  • Monitoring edge/IoT: Raspberry Pi compatible. Lightweight. Log inference sin indexing central.

HTTPS con Caddy (producción)

Caddyfile

monitor.tudominio.com { reverse_proxy localhost:19999 }

Acceso remoto seguro

https://monitor.tudominio.com con HTTPS automático

IMPORTANTE: Proteger acceso

Netdata no incluye auth por defecto. Para exposición remota: usar Caddy basic_auth o reverse proxy con autenticación.

Gestión y mantenimiento

Ver logs

docker logs -f netdata

Backup de config

docker cp netdata:/etc/netdata ./netdata-config-backup-$(date +%Y%m%d)

Restore config

docker stop netdata docker cp ./netdata-config-backup-YYYYMMDD/netdata netdata:/etc/ docker start netdata

Reiniciar container

docker compose restart netdata

Actualizar a versión más reciente

docker compose pull docker compose up -d

Monitorear consumo Netdata

docker stats netdata # Típicamente: 100-300MB RAM, 1-3% CPU (muy ligero)

Ver tamaño database (metrics)

docker exec netdata du -sh /var/lib/netdata

Configurar alertas Slack (ejemplo)

docker exec netdata bash cd /etc/netdata && ./edit-config health_alarm_notify.conf # SLACK_WEBHOOK_URL=https://hooks.slack.com/services/YOUR/WEBHOOK

Comparativa con alternativas

vs Prometheus + Grafana + Alertmanager

Netdata gana: Cero configuración, alertas pre-built, ML integrado, 99% menos complejidad. Prometheus gana: Query language potente (PromQL), más flexible para cases complejos.

vs Telegraf + InfluxDB + Grafana

Netdata gana: Todo integrado, 1-3% CPU, cero setup. Stack gana: Altamente customizable, separación componentes.

vs DataDog / New Relic (SaaS)

Netdata gana: Self-hosted, datos en tu infraestructura, costo 90% menor, zero data egress. SaaS gana: Support, enterprise features.

vs Zabbix

Netdata gana: Cero config, ML, modern UI, real-time. Zabbix gana: Enterprise maturity, más extensible.

Mejor para: Homelabs y equipos que valoran simplicidad + potencia. Real-time. No query language. ML automático. Una herramienta.

Comentarios

Entradas populares de este blog

Cómo Instalar y configurar SERVIDOR VPN WIREGUARD en MIKROTIK 🔐 #VPN #Wireguard #Mikrotik #RouterOS

Cómo instalar y configurar DSM SYNOLOGY 7.2.2 en PC | Guía completa, instalación, RAID 1, SMB

Cómo INSTALAR y CONFIGURAR OpenVPN en MIKROTIK. Guía completa paso a paso.