Monitoraggio Raspberry Pi con InfluxDB e Grafana

By | Novembre 29, 2024

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 o Mean.

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 o Max.

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!

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *

Questo sito usa Akismet per ridurre lo spam. Scopri come i tuoi dati vengono elaborati.