20221125 Grafana dashboard voor RPi Systeem data
Missie:
Grafana Dashboard voor RPi m.b.v. Telegraf.
Wat is Telegraf?
Telegraf is de gegevensverzamelingsagent voor InfluxDB voor het verzamelen en rapporteren van statistieken.
Dankzij de enorme bibliotheek met invoerplug-ins en de plug-and-play-architectuur kunt je snel en eenvoudig
statistieken uit veel verschillende bronnen verzamelen.
Er zijn veel kant en klare Plug-ins te vinden.
Telegraf werkt fijn samen met InfluxDB en Grafana. Samen noemt men het ook wel de TIG stack (Telegraf, InfluxDB, Grafana)
Hoofdstukken:
Stap 1 - Breng het besturingssysteem op de laatste stand.
Stap 2 - Installatie en opstart van Telegraf.
Stap 3 - In InfluxDB een nieuwe database aanmaken.
Stap 4 - Gegevens naar InfluxDB en weergeven in Grafana.
Stap 5 - Nog meer systeem data.
Stap 6 - Super de luxe Grafana dashboad.
Stap 1 - Breng het besturingssysteem op de laatste stand.
Open een terminal venster en type de volgende commando’s:
sudo apt update && sudo apt upgrade
Stap 2 - Installatie en opstart van Telegraf.
Als Grafana en InfluxDB reeds zijn geïnstalleerd kan Telegraf geïnstalleerd worden met het volgende commando:
sudo apt-get install telegraf
Kijk of Telegraf draait met de commando's:
sudo systemctl enable telegraf
sudo systemctl start telegraf
Stap 3 - In InfluxDB een nieuwe database aanmaken.
We gaan in InfluxDB een database (measure) aanmaken met de naam SystemData, met gebruiker SystemDataUser met wachtwoord Syst3mD@t@Us3r en 4 weken retentie.
Log in in InfluxDB:
influx -username admin -password '<password>'
Mogelijke systeem response:
Connected to http://localhost:8086 version 1.8.0
InfluxDB shell version: 1.8.0
>
Maak een database aan.
create database SystemData
use SystemData
Nu gebruik je de net aangemaakte data base en kun je een gebruike met wachtwoord aanmaken.
create user SystemDataUser with password 'Syst3mD@t@Us3r' with all privileges
grant all privileges on SystemData to SystemDataUser
Daarna kun je de retentie gegevens invoeren en InfluxDB verlaten:
create retention policy "4Weeks" on "SystemData" duration 4w replication 1 default
exit
Stap 4 - Gegevens naar InfluxDB en weergeven in Grafana.
Om de eerste lokale agentgegevens naar de InfluxDB te sturen, hoef je alleen maar de volgende secties van het centrale Telegraf-configuratiebestand te verwijderen en/of te wijzigen.
sudo nano /etc/telegraf/telegraf.conf
Ga op zoek naar het [[outputs.influxdb gedeelte en editeer:
[[outputs.influxdb]]
urls = ["http://127.0.0.1:8086"]
database = "SystemData"
username = "SystemDataUser"
password = "Syst3mD@t@User"
Sla de wijzigingen op en laad de Telegraf service opnieuw en controleer de status van de service:
sudo systemctl reload telegraf.service
sudo systemctl status telegraf.service
Vanaf nu begint Telegraf gegevens naar de InfluxDB te pushen.
Hier is een snelle manier om te controleren of er iets naar de database wordt geschreven.
influx -username admin -password '<password>'
Connected to http://localhost:8086 version 1.8.0
InfluxDB shell version: 1.8.0
>
use SystemData
Using database telegraf
>
select * from system limit 5
name: system
time host load1 load15 load5 n_cpus n_users uptime uptime_format
---- ---- ----- ------ ----- ------ ------- ------ -------------
1594650963000000000 raspberrypi 0.39 0.47 0.65 4 1 13350 3:42
1594650973000000000 raspberrypi 0.33 0.46 0.63 4 1 13360 3:42
1594650983000000000 raspberrypi 0.35 0.46 0.63 4 1 13370 3:42
1594650993000000000 raspberrypi 0.59 0.48 0.67 4 1 13380 3:43
1594651003000000000 raspberrypi 0.5 0.47 0.65 4 1 13390 3:43
Deze gegevens kunnen we met Grafana visualiseren, maar we kunnen ook een grote stap verder gaan.
Stap 5 - Nog meer systeem data.
Jorge de la Cruz deelt een heel mooi dashboard met
RaspberryPi-hoststatistieken dat gemakkelijk kan worden gevisualiseerd via Grafana.
Er zijn een paar extra aanpassingen nodig om de netwerk- en temperatuurstatistieken uit te lezen:
sudo usermod -a -G video telegraf
Bovenstaande opdracht voegt de gebruike telegraf toe aan de Linux-groepsvideo om informatie over de GPU te verzamelen.
Om de Telegraf-configuratie aan te vullen, kunt u beter de map /etc/telegraf/telegraf.d gebruiken en een nieuw bestand
maken met de naam raspberrypi.conf.
Telegraf leest elk bestand dat eindigt op .conf in deze map wanneer het opnieuw wordt geladen, waardoor het zeer eenvoudig
is om de algehele configuratie te structureren en te onderhouden, of om de onboarding van apparaten te automatiseren via je favoriete
configuratie-oplossing.
sudo nano /etc/telegraf/telegraf.d/raspberrypi.conf
[[inputs.net]]
[[inputs.netstat]]
[[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}"]
Sla het bestand op.
In sommige versies van Raspbian staat de opdracht vcgencmd niet meer op bovenstaande plek maar kan de /opt/vc/bin/ worden weggelaten.
Of bovenstaand werkt, kunnen we gemakkelijk testen met de opdracht:
telegraf --test --config /etc/telegraf/telegraf.d/raspberrypi.conf
Geeft als resultaat:
2020-07-13T16:43:27Z I! Starting Telegraf 1.14.5
(...)
cpu_temperature,host=raspberrypi value=53154i 1594658607000000000
gpu_temperature,host=raspberrypi value=53.7 1594658607000000000
Conclusie: alles is ok, kunnen we de service herladen en starten met:
sudo systemctl reload telegraf.service
Stap 6 - Super de luxe Grafana dashboad.
Nu terug naar de Grafana-frontend. Om het dashboard toe te voegen, beweegt u de muis over de + net onder de Grafana Search op de hoofdpagina en kiest u Importeren. Voer de ID 10578 in en laad.
De Datasource moet een InfluxDB database zijn en na Import verschijnt het nieuwe Dashboard.