Netdata - Hoja de Trucos de Monitoreo de Rendimiento en Tiempo Real
Netdata es un agente de monitoreo de código abierto que recopila miles de métricas por segundo con casi nula configuración y las visualiza en un panel web en vivo (puerto predeterminado 19999). Autodescubre servicios (bases de datos, servidores web, contenedores, Kubernetes) a través de 800+ recolectores y viene con detección de anomalías y un motor de alertas integrado.
Instalación
| Método | Comando |
|---|
| Universal kickstart | wget -O /tmp/netdata-kickstart.sh https://get.netdata.cloud/kickstart.sh && sh /tmp/netdata-kickstart.sh |
| Variante curl | curl https://get.netdata.cloud/kickstart.sh > /tmp/k.sh && sh /tmp/k.sh |
| Paquete Debian/Ubuntu | sudo apt install netdata |
| Paquete Fedora/RHEL | sudo dnf install netdata |
| Docker | docker run -d --name=netdata -p 19999:19999 --cap-add SYS_PTRACE netdata/netdata |
| Helm (Kubernetes) | helm install netdata netdata/netdata |
Después de instalar, abre http://localhost:19999 (o la IP del servidor).
Administración de Servicios
| Comando | Descripción |
|---|
sudo systemctl start netdata | Inicia el agente |
sudo systemctl enable netdata | Inicia en el arranque |
sudo systemctl restart netdata | Reinicia (aplica cambios de configuración) |
sudo systemctl status netdata | Verifica el estado |
sudo journalctl -u netdata -f | Muestra los registros del agente |
netdatacli reload-health | Recarga las alarmas sin reinicio completo |
netdatacli reload-labels | Recarga las etiquetas del host |
netdatacli shutdown-agent | Detiene el agente correctamente |
Configuración
Siempre edita la configuración con el envoltorio edit-config — copia el archivo de referencia desde /usr/lib/netdata/conf.d a /etc/netdata para que las actualizaciones no lo sobrescriban.
cd /etc/netdata
sudo ./edit-config netdata.conf # configuración principal del agente
sudo ./edit-config health_alarm_notify.conf # notificaciones
sudo ./edit-config go.d.conf # habilita/deshabilita recolectores Go
Parámetro (en netdata.conf) | Propósito |
|---|
[global] update every = 1 | Intervalo de recopilación en segundos |
[global] history / dbengine | Tamaños de retención / capas de base de datos en disco |
[web] bind to = * | Interfaces de red en las que escucha el panel |
[web] default port = 19999 | Puerto del panel |
[plugins] | Habilita/deshabilita grupos de plugins completos |
Recolectores (Plugins)
| Tarea | Cómo |
|---|
| Listar archivos de configuración por recolector | cd /etc/netdata && sudo ./edit-config go.d/CONFIG.conf |
| Habilitar un módulo (p. ej. nginx) | sudo ./edit-config go.d/nginx.conf y luego apunta a la URL de estado |
| Depurar un recolector Go | sudo /usr/libexec/netdata/plugins.d/go.d.plugin -d -m nginx |
| Módulos autodescubiertos comunes | nginx, apache, mysql, postgres, redis, docker, unidades systemd, discos, red, sensores |
Salud y Alarmas
Las definiciones de alarmas viven en /etc/netdata/health.d/*.conf.
cd /etc/netdata
sudo ./edit-config health.d/cpu.conf # ajusta una alarma integrada
netdatacli reload-health # aplica cambios
| Comando | Descripción |
|---|
curl http://localhost:19999/api/v1/alarms?all | Lista todas las alarmas y estado actual (JSON) |
curl http://localhost:19999/api/v1/info | Información del agente, versión, recolectores |
Edita health_alarm_notify.conf | Configura email, Slack, PagerDuty, Discord, etc. |
Puntos Finales Útiles de la API
| Punto Final | Retorna |
|---|
/api/v1/charts | Todos los gráficos disponibles en el nodo |
/api/v1/data?chart=system.cpu | Datos de series de tiempo para un gráfico |
/api/v1/allmetrics?format=prometheus | Objetivo de scrape para Prometheus |
/api/v1/badge.svg?chart=system.cpu&value_color=green | Insignia de estado incrustable |
Netdata Cloud (Opcional)
# Conecta (reclama) un nodo a Netdata Cloud para paneles multi-nodo
sudo netdata-claim.sh -token=YOUR_TOKEN -rooms=ROOM_ID -url=https://app.netdata.cloud
El agente funciona completamente independiente si nunca lo reclamas — Cloud solo añade vistas entre nodos y alertas centralizadas.
Flujos de Trabajo Comunes
# Verificación rápida de salud desde el shell
curl -s http://localhost:19999/api/v1/alarms | jq '.alarms | keys'
# Expone métricas a un stack Prometheus existente
curl -s 'http://localhost:19999/api/v1/allmetrics?format=prometheus' | head
# Reduce la huella de CPU/disco en una VM pequeña (netdata.conf)
# [global] update every = 2
# [db] mode = ram # mantiene métricas solo en memoria
# Reduce la retención pero mantiene granularidad por segundo, luego recarga
sudo systemctl restart netdata
Netdata vs Prometheus + Grafana
| Aspecto | Netdata | Prometheus + Grafana |
|---|
| Configuración | Minutos, autodescubrimiento | Exportadores + paneles manuales |
| Granularidad | Por segundo de forma predeterminada | Típicamente scrape de 15s |
| Almacenamiento | BD local en capas (dbengine) | TSDB central |
| Mejor para | Profundidad en nodo único, triaje rápido | Flotas grandes, consultas a largo plazo |
| Interoperabilidad | Exporta formato Prometheus | Puede hacer scrape de Netdata |
Recursos