Monitoritzant Raspberry Pi amb Telegraf

Tenia pendent des de fa temps publicar alguns posts sobre Telegraf i algunes marors que podem fer. En aquest document senzilles veurem com podem recopilar mètriques de rendiment d'una Raspberry Pi i mostrar-les en temps real amb Grafana!

Suposant que ja tenim Influxdb muntat i funcional en un servidor, així com Grafana (si no, revisa això), doncs és hora de recopilar mètriques, comencem amb una cosa senzilla, una màquina Linux (basada en Debian), i què millor que una Raspberry Pi, on a més d' obtenir les mètriques comunes, obtindrem també les de les temperatures de CPU i GPU.

Comencem! Instal·larem l'agent de Telegraf a la Raspberry Pi per indicar-li les mètriques que volem enviar a l'Influxdb, el primeret, descarreguem les claus del repo d'Influx:

curl -sL https://repos.influxdata.com/influxdb.key | sudo apt-key add -

I hi afegim el repositori amb (ull, seleccionarem la nostra versió de debian correcta (bullseye, buster, stretch…) :

echo "deb https://repos.influxdata.com/debian buster stable" | sudo tee /etc/apt/sources.list.d/influxdb.list

I ara sí, instal·lem Telegraf:

sudo wget -O - https://repos.influxdata.com/influxdb.key | sudo apt-key add -
sudo apt-get update sudo apt install telegraf -y

A continuació, hem de tocar el fitxer de configuració de Telegraf (/etc/telegraf/telegraf.conf), així que l'obrim i l'editem, canviarem diverses coses, segons les nostres necessitats. Comencem amb 'interval’ i amb 'flush_interval', el primer indica cada quant checkeara, i el segon cada quant el mana a la BD, si voleu a nivell de 1 segon ens quedaria així, no cal potser tan agressiu, però queda després molt impressionant a Grafana, veure com refresca al segon…:

...
[agent]
interval = "1s"
flush_interval = "1s"
...

A la secció dels Inputs, descomentarem les mètriques que vulguem rebre, exemple:

...
# Input Plugins
[[inputs.cpu]]
    percpu = true totalcpu = true collect_cpu_time = false report_active = false
[[inputs.disk]]
    ignore_fs = ["tmpfs", "devtmpfs", "devfs"]
[[inputs.io]]
[[inputs.mem]]
[[inputs.net]]
[[inputs.system]]
[[inputs.swap]]
[[inputs.netstat]]
[[inputs.processes]]
[[inputs.kernel]]
...

I finalment, als Outputs, a la sortida, on ho manem les mètriques, descomentem i configurem correctament la secció d'Influxdb:

...
[[outputs.influxdb]]
  urls = ["http://DIRECCION_IP:8086"] # required database = "NOMBREBD"
  username = "usuari"
  password = "XXXXXXXXX"
  skip_database_creation = true
...

Després de gravar el fitxer, podem provar si la configuració és correcta amb:

telegraf --test

Reiniciem els serveis de Telegraf perquè carregeix la configuració recent modificada, veiem que va arrencar i indiquem que iniciï Telegraf amb el sistema:

sudo systemctl start telegraf sudo systemctl status telegraf sudo systemctl enable telegraf

Si a més d'aquestes mètriques estàndard volem a més afegir mètriques que ens doni la temperatura de la CPU i/o la temperatura de la GPU de la Raspberry Pi, seguim amb, afegint a l'usuari de Telegraf al grup de vídeo perquè pugui llegir aquestes dades:

sudo usermod -G video telegraf

A continuació podrem crear-nos un fitxer de configuració per a aquest menester, per exemple l'anomenem '/etc/telegraf/telegraf-raspberrypitemp.conf’ i amb el contingut següent:

[[inputs.file]]
  files = ["/sys/class/thermal/thermal_zone0/temp"]
  name_override = "cpu_temperature"
  data_format = "value"
  data_type = "integer"

[[inputs.exec]]
  commands = ["/opt/vc/bin/vcgencmd measure_temp"]
  name_override = "gpu_temperature"
  data_format = "grok"
  grok_patterns = ["%{NUMBER:value:float}"]

Recarreguem Telegraf perquè llegeixi aquesta configuració nova i el tindríem llest:

sudo systemctl restart telegraf

Amb això les dades ja s'estarien emmagatzemant a Influxdb, ara per visualitzar-lo des de Grafana doncs el de sempre, si no tenim el Data Source contra Influxdb ho creiem, i el següent i més còmode serà baixar-se un Dashboard que ens agradi i hagi fet la comunitat 🙂 Jo he provat amb aquest Dashboard, que com veieu és tan senzill com a l'hora de crear un nou Dashboard al nostre Grafana, importar el seu ID, en aquest cas el '10578', però anem que hi ha molts altres dashboards o vosaltres en un periquet us el modificareu. Per cert el Dashboard aquest és de Jorge de la Cruz, així que gràcies per la teva estona!!

I segur que en un momentet tindreu alguna cosa tan xulo com això! o vagi, molt millor!!! Ja podem visualitzar en temps real el rendiment de la nostra Raspberry Pi, li veiem les diferents CPUs, Memòries, Ús de discos, trànsit de xarxa, càrrega, temperatures…

Bo, m'acomiada com sempre agraint a tots els que llegiu aquestes xapes, als que voleu aprendre, als que compartis en xarxes socials contingut divulgatiu!

Abraçades!

Posts recomanats

Autor

nheobug@bujarra.com
Autor del blog Bujarra.com Cualquier necesidad que tengas, no dubtis a contactar amb mi, us intentareu ajudar sempre que pugui, compartir és viure ;) . Gaudir dels documents!!!

Codis QR en el teu datacenter

7 de February de 2023