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.

TIG.png

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.

pic1.png

pic2.png

De Datasource moet een InfluxDB database zijn en na Import verschijnt het nieuwe Dashboard.

pic3.jpg
Back to top