Netdata - Monitoraggio delle Prestazioni in Tempo Reale Cheatsheet
Netdata è un agente di monitoraggio open-source che raccoglie migliaia di metriche al secondo con configurazione quasi zero e le visualizza su un dashboard web live (porta predefinita 19999). Rileva automaticamente i servizi (database, server web, container, Kubernetes) attraverso 800+ collector e include rilevamento anomalie e un motore di avviso integrato.
Installazione
| Metodo | Comando |
|---|
| Universal kickstart | wget -O /tmp/netdata-kickstart.sh https://get.netdata.cloud/kickstart.sh && sh /tmp/netdata-kickstart.sh |
| curl variant | curl https://get.netdata.cloud/kickstart.sh > /tmp/k.sh && sh /tmp/k.sh |
| Pacchetto Debian/Ubuntu | sudo apt install netdata |
| Pacchetto 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 |
Dopo l’installazione, apri http://localhost:19999 (o l’IP del server).
Gestione del Servizio
| Comando | Descrizione |
|---|
sudo systemctl start netdata | Avvia l’agente |
sudo systemctl enable netdata | Avvia al boot |
sudo systemctl restart netdata | Riavvia (applica i cambiamenti di configurazione) |
sudo systemctl status netdata | Controlla lo stato |
sudo journalctl -u netdata -f | Visualizza i log dell’agente in tempo reale |
netdatacli reload-health | Ricarica gli allarmi senza un riavvio completo |
netdatacli reload-labels | Ricarica le etichette host |
netdatacli shutdown-agent | Arresta l’agente correttamente |
Configurazione
Modifica sempre la configurazione con il wrapper edit-config — copia il file stock da /usr/lib/netdata/conf.d in /etc/netdata quindi gli aggiornamenti non lo sovrascrivono.
cd /etc/netdata
sudo ./edit-config netdata.conf # configurazione agente principale
sudo ./edit-config health_alarm_notify.conf # notifiche
sudo ./edit-config go.d.conf # abilita/disabilita i collector Go
Impostazione (in netdata.conf) | Scopo |
|---|
[global] update every = 1 | Intervallo di raccolta in secondi |
[global] history / dbengine | Dimensioni dei livelli di database on-disk / ritenzione |
[web] bind to = * | Interfacce di rete su cui il dashboard ascolta |
[web] default port = 19999 | Porta del dashboard |
[plugins] | Attiva/disattiva gruppi di plugin interi |
Collector (Plugin)
| Compito | Come |
|---|
| Elenca i file di configurazione per collector | cd /etc/netdata && sudo ./edit-config go.d/CONFIG.conf |
| Abilita un modulo (es. nginx) | sudo ./edit-config go.d/nginx.conf poi puntalo all’URL di stato |
| Debug di un collector Go | sudo /usr/libexec/netdata/plugins.d/go.d.plugin -d -m nginx |
| Moduli comunemente auto-rilevati | nginx, apache, mysql, postgres, redis, docker, unità systemd, dischi, rete, sensori |
Salute e Allarmi
Le definizioni di allarme vivono in /etc/netdata/health.d/*.conf.
cd /etc/netdata
sudo ./edit-config health.d/cpu.conf # regola un allarme integrato
netdatacli reload-health # applica
| Comando | Descrizione |
|---|
curl http://localhost:19999/api/v1/alarms?all | Elenca tutti gli allarmi e lo stato attuale (JSON) |
curl http://localhost:19999/api/v1/info | Info agente, versione, collector |
Modifica health_alarm_notify.conf | Collega email, Slack, PagerDuty, Discord, ecc. |
Endpoint API Utili
| Endpoint | Restituisce |
|---|
/api/v1/charts | Tutti i grafici disponibili sul nodo |
/api/v1/data?chart=system.cpu | Dati serie temporali per un grafico |
/api/v1/allmetrics?format=prometheus | Target di scraping per Prometheus |
/api/v1/badge.svg?chart=system.cpu&value_color=green | Badge di stato incorporabile |
Netdata Cloud (Opzionale)
# Connetti (rivendica) un nodo a Netdata Cloud per dashboard multi-nodo
sudo netdata-claim.sh -token=YOUR_TOKEN -rooms=ROOM_ID -url=https://app.netdata.cloud
L’agente continua a funzionare completamente in standalone se non lo reclami mai — Cloud aggiunge solo viste cross-nodo e avvisi centralizzati.
Flussi di Lavoro Comuni
# Controllo di salute rapido dalla shell
curl -s http://localhost:19999/api/v1/alarms | jq '.alarms | keys'
# Esponi metriche a uno stack Prometheus esistente
curl -s 'http://localhost:19999/api/v1/allmetrics?format=prometheus' | head
# Riduci l'impronta CPU/disco su una piccola VM (netdata.conf)
# [global] update every = 2
# [db] mode = ram # mantieni le metriche solo in memoria
# Riduci la ritenzione ma mantieni la granularità al secondo, poi ricarica
sudo systemctl restart netdata
Netdata vs Prometheus + Grafana
| Aspetto | Netdata | Prometheus + Grafana |
|---|
| Configurazione | Minuti, auto-rilevamento | Esporter manuali + dashboard |
| Granularità | Al secondo per impostazione predefinita | Tipicamente scraping a 15s |
| Archiviazione | Database locale a livelli (dbengine) | TSDB centrale |
| Migliore per | Profondità single-node, triage veloce | Flotte grandi, query long-term |
| Interop | Esporta formato Prometheus | Può scrapare Netdata |
Risorse