Monitoraggio Raspberry Pi con InfluxDB e Grafana
Scopri come configurare un sistema di monitoraggio completo per il tuo Raspberry Pi utilizzando InfluxDB e Grafana. Questa guida ti mostrerà come tracciare l’utilizzo di CPU, RAM e rete con query semplici ed efficaci.
1. Prerequisiti per il monitoraggio di Raspberry Pi
Per configurare il monitoraggio, assicurati di avere:
- Raspberry Pi configurato con Telegraf per raccogliere metriche di sistema.
- Un’istanza funzionante di InfluxDB per archiviare i dati.
- Un’istanza di Grafana per creare dashboard personalizzate.
2. Configurazione di Grafana per Raspberry Pi
Per una guida completa alla configurazione di InfluxDB e Grafana, consulta la documentazione ufficiale di Grafana.
3. Query per il monitoraggio di Raspberry Pi
3.1. Monitoraggio della CPU
Calcola l’utilizzo della CPU sottraendo il tempo idle dal 100%.
from(bucket: "home")
|> range(start: -1h)
|> filter(fn: (r) => r._measurement == "cpu" and r._field == "usage_idle" and r.host =~ /raspberrypi/ and r.cpu == "cpu-total")
|> map(fn: (r) => ({ r with _value: (100.0 - r._value) }))
|> yield(name: "CPU Usage")
- Impostazioni Grafana:
- Unità: Percentuale (%).
- Calcolo: Usa
Last
oMean
.
3.2. Monitoraggio della RAM
Monitoraggio dell’utilizzo della RAM in percentuale:
from(bucket: "home")
|> range(start: -1h)
|> filter(fn: (r) => r._measurement == "mem" and r._field == "used_percent" and r.host =~ /raspberrypi/)
|> aggregateWindow(every: 10s, fn: mean, createEmpty: false)
|> yield(name: "RAM Usage")
- Impostazioni Grafana:
- Unità: Percentuale (%).
- Calcolo: Usa
Last
.
3.3. Monitoraggio della rete
Download (in bit al secondo):
from(bucket: "home")
|> range(start: -1h)
|> filter(fn: (r) => r._measurement == "net" and r._field == "bytes_recv" and r.host =~ /raspberrypi/ and r.interface == "eth0")
|> aggregateWindow(every: 10s, fn: mean, createEmpty: false)
|> derivative(nonNegative: true, unit: 1s)
|> map(fn: (r) => ({ r with _value: r._value * 8.0 }))
|> yield(name: "Download")
Upload (in bit al secondo):
from(bucket: "home")
|> range(start: -1h)
|> filter(fn: (r) => r._measurement == "net" and r._field == "bytes_sent" and r.host =~ /raspberrypi/ and r.interface == "eth0")
|> aggregateWindow(every: 10s, fn: mean, createEmpty: false)
|> derivative(nonNegative: true, unit: 1s)
|> map(fn: (r) => ({ r with _value: r._value * 8.0 }))
|> yield(name: "Upload")
- Impostazioni Grafana:
- Unità: Bit per secondo (bps).
- Calcolo: Usa
Last
oMax
.
3.4. Numero di threads totali
Monitoraggio del numero totale di thread attivi sul sistema:
from(bucket: "home")
|> range(start: -1h)
|> filter(fn: (r) => r._measurement == "processes" and r._field == "total_threads" and r.host =~ /raspberrypi/)
|> aggregateWindow(every: 10s, fn: mean, createEmpty: false)
|> yield(name: "Total Threads")
- Impostazioni Grafana:
- Unità: Numero.
- Calcolo: Usa
Last
.
4. Miglioramenti e ottimizzazioni
- Aggiungi immagini: Includi screenshot della dashboard di Grafana con descrizioni adeguate negli attributi “alt”.
- Aggiungi link interni: Collega altri articoli del tuo blog correlati, ad esempio configurazioni di Telegraf.
- Verifica l’anteprima SEO: Usa strumenti come Yoast SEO per migliorare ulteriormente la leggibilità e la visibilità.
5. Conclusioni
Con questa guida, puoi monitorare in modo efficace il tuo Raspberry Pi con InfluxDB e Grafana. Ottieni informazioni dettagliate su CPU, RAM, rete e altro. Scopri di più su Grafana per personalizzare ulteriormente le tue dashboard!