Ir al contenido

Netdata - Hoja de Trucos de Monitoreo de Rendimiento en Tiempo Real

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étodoComando
Universal kickstartwget -O /tmp/netdata-kickstart.sh https://get.netdata.cloud/kickstart.sh && sh /tmp/netdata-kickstart.sh
Variante curlcurl https://get.netdata.cloud/kickstart.sh > /tmp/k.sh && sh /tmp/k.sh
Paquete Debian/Ubuntusudo apt install netdata
Paquete Fedora/RHELsudo dnf install netdata
Dockerdocker 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

ComandoDescripción
sudo systemctl start netdataInicia el agente
sudo systemctl enable netdataInicia en el arranque
sudo systemctl restart netdataReinicia (aplica cambios de configuración)
sudo systemctl status netdataVerifica el estado
sudo journalctl -u netdata -fMuestra los registros del agente
netdatacli reload-healthRecarga las alarmas sin reinicio completo
netdatacli reload-labelsRecarga las etiquetas del host
netdatacli shutdown-agentDetiene 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 = 1Intervalo de recopilación en segundos
[global] history / dbengineTamañ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 = 19999Puerto del panel
[plugins]Habilita/deshabilita grupos de plugins completos

Recolectores (Plugins)

TareaCómo
Listar archivos de configuración por recolectorcd /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 Gosudo /usr/libexec/netdata/plugins.d/go.d.plugin -d -m nginx
Módulos autodescubiertos comunesnginx, 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
ComandoDescripción
curl http://localhost:19999/api/v1/alarms?allLista todas las alarmas y estado actual (JSON)
curl http://localhost:19999/api/v1/infoInformación del agente, versión, recolectores
Edita health_alarm_notify.confConfigura email, Slack, PagerDuty, Discord, etc.

Puntos Finales Útiles de la API

Punto FinalRetorna
/api/v1/chartsTodos los gráficos disponibles en el nodo
/api/v1/data?chart=system.cpuDatos de series de tiempo para un gráfico
/api/v1/allmetrics?format=prometheusObjetivo de scrape para Prometheus
/api/v1/badge.svg?chart=system.cpu&value_color=greenInsignia 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

AspectoNetdataPrometheus + Grafana
ConfiguraciónMinutos, autodescubrimientoExportadores + paneles manuales
GranularidadPor segundo de forma predeterminadaTípicamente scrape de 15s
AlmacenamientoBD local en capas (dbengine)TSDB central
Mejor paraProfundidad en nodo único, triaje rápidoFlotas grandes, consultas a largo plazo
InteroperabilidadExporta formato PrometheusPuede hacer scrape de Netdata

Recursos