Grafana Howto: Von der B.One Middleware via MQTT in die InfluxDB

Du möchtest weiterlesen?
Dann melde dich jetzt an oder registriere dich.
Anmelden Registrieren
– đđ â 4 min – Im Artikel âOpen Source Tool Grafana â Eine EinfĂŒhrungâ wurde bereits beschrieben, um was fĂŒr ein Tool es sich dabei handelt und was Ihr damit…
– đđ â 3 min – Wir haben Grafana in den vorangegangenen Artikeln âOpen Source Tool Grafana â Eine EinfĂŒhrungâ und âGrafana Howto: Lokale Installation & Einrichtung am Beispiel Ubuntuâ vorgestellt…
– đđ â 3 min – Im digitalen Zeitalter sind die Ăberwachung und Darstellung von Systemen und Datenbanken, sowohl im privaten als auch im geschĂ€ftlichen Bereich, sehr beliebt und nahezu fundamental.…
In den letzten Artikeln wurde euch bereits eine kleine EinfĂŒhrung ĂŒber das Open Source Tool Grafana gegeben. Zudem wurde berichtet, wie man Grafana lokal unter Ubuntu installieren und einrichten kann. Heute installieren wir eine kleine Datenbank fĂŒr eure Anwendungen auf einer Linux-Distribution und schreiben erste Beispieldaten, welche wir per MQTT entgegennehmen in die Datenbank. Die gespeicherten Daten visualisieren wir anschlieĂend in Grafana.
Hierzu kommt InfluxDB in Verbindung mit Telegraf zum Einsatz. Der Vorteil von InfluxDB ist unter anderem die automatische und stressfreie, zeitliche Organisation von DatensÀtzen. InfluxDB bietet viele Plug-ins, welche die Anbindung an andere Protokolle und Tools sehr einfach gestalten.
Zur lokalen Installation benötigt ihr nichts Weiteres als ein klein wenig Zeit. Die folgenden Befehle können einfach ĂŒber ein Terminal oder einen Client wie Putty eingegeben werden:
Â
FĂŒgt zuerst die entsprechenden Repositories hinzu:
wget -qO- https://repos.influxdata.com/influxdb.key | sudo apt-key add -
source /etc/os-release
echo "deb https://repos.influxdata.com/debian $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/influxdb.list
Aktualisiert sowie installiert die entsprechenden Pakete:
sudo apt update
sudo apt install -y influxdb telegraf
Ich empfehle euch, InfluxDB mit dem Bootvorgang eures Systems zu starten:
sudo systemctl unmask influxdb.service
sudo systemctl start influxdb.service
sudo systemctl enable influxdb.service
sudo systemctl start telegraf.service
sudo systemctl enable telegraf.service
Um eure InfluxDB zu nutzen, startet ihr einfach den Influx Client und richtet eine Datenbank und einen User ein. In diesem Beispiel richten wir eine Datenbank fĂŒr Telegraf Daten mit einem User fĂŒr Telegraf und Grafana ein.
Ersetzt Name und Passwort durch eure eigene Infos.
Client starten:influx
Datenbank und User einrichten:create database telegraf_b_one
use telegraf_b_one
create user telegraf with password ''
grant all on telegraf_b_one to telegraf
create user grafana with password ''
grant read on telegraf_b_one to grafana
Zuletzt prĂŒfen wir noch, ob alles richtig angelegt wurde und beenden den InfluxDB Client. Hierzu gebt ihr folgende Befehle in euer Terminal ein:
show databases
show users
show grants for telegraf
show grants for grafana
Â
quit
Bevor wir weitermachen, mĂŒsst ihr in der Konfiguration von Telegraf noch ein paar kleine Ănderungen vornehmen. Hierzu öffnet ihr die telegraf.conf in einem Editor wie bspw. nano:
sudo nano /etc/telegraf/telegraf.conf
Nun sucht ihr im Bereich âConfiguration for sending metrics to InfluxDBâ nach den folgenden EintrĂ€gen und editiert sie entsprechend. Die Anmeldedaten "username" und "password" ersetzt ihr durch die von euch oben gewĂ€hlten Infos.database = "telegraf_b_one" # required
username = "admin"
password = "password"
Denkt daran, dass bei allen geĂ€nderten Parametern die Auskommentierung durch das â#â herausgelöscht werden muss und vergesst am Schluss nicht zu speichern.
Â
Ihr mĂŒsst nun noch eure InfluxDB in Grafana bekannt machen. Ihr habt in einem Ă€lteren Artikel gelernt wie ihr Grafana installiert und einrichtet.
Hierzu geht ihr, wie bereits im Artikel "Grafana Howto: Eine Datenbank als Datenquelle anbinden" erlĂ€utert, in den Einstellungsbereich von Grafana und fĂŒgt eine neue Datenquelle hinzu. Hierzu einfach in das Suchfeld "InfluxDB" eingeben und in der Trefferliste auswĂ€hlen.
Als nĂ€chstes mĂŒsst ihr die URL und den Port eurer Datenbank sowie den User angeben. URL und Port, sind soweit ihr dies nicht geĂ€ndert habt: 0.0.0.0:8086. Falls ihr eure Datenbank in einem Docker Container betreibt, mĂŒsst ihr die IP des Containers verwenden.
Nun mĂŒsst ihr noch angeben, welche Datenbank innerhalb von InfluxDB verwendet werden soll. In unserem Beispiel ist dies "telegraf_b_one" mit dem User "telegraf".
[caption id="attachment_12064" align="aligncenter" width="861"]Zuletzt noch speichern und testen. Wenn die grĂŒne Hinweismeldung âData source is workingâ erscheint, war die Einrichtung erfolgreich.
Typische Fehler, warum der Test fehlschlÀgt, sind Typos in der URL oder dem Port, nicht gestartete InfluxDB Instanz oder falsche User credentials.
Falls ihr InfluxDB und Grafana in Docker Containern betreibt ist hĂ€ufig die IP und Port die Fehlerquelle. PrĂŒft dies in eurer Docker Konfiguration.
Â
Nachdem wir nun eine Datenbank fĂŒr Telegraf eingerichtet haben, schauen wir uns nun an, wie wir Daten ĂŒber Telegraf in unsere InfluxDB bekommen. Als Ăbertragungsstandard nutzen wir MQTT. Unsere LoRa-Nutzdaten werden von der B.One Middleware nach der Einrichtung der Weiterleitung wie im Blog-Artikel âWeiterleitungsmöglichkeiten B.One Middlwareâ beschrieben an unseren Broker gepublished, welchen wir nun ĂŒber telegraf subscriben. Dabei subscriben wir das topic â/devices/+/upâ, welches von allen GerĂ€ten (Wildcard â+â) eine Zusammenfassung des kompletten Telegramms beinhaltet.
Zur Einrichtung mĂŒssen wir das Topic sowie die Zugangsdaten zum Broker in der telegraf.conf hinterlegen. Hierzu öffnet ihr die Datei wieder im Editor:
sudo nano /etc/telegraf/telegraf.conf
Ăndert im Bereich âRead metrics from MQTT topic(s)â folgende EintrĂ€ge mit euren Informationen ab:
Auskommentierung ĂŒber â#â vor [[inputs.mqtt_consumer]] herauslöschen, um den MQTT-Subscriber zu aktivieren
servers = [âtcp://xxxxxxxx:port] Â --> URL und Port eures Brokers
topics = [âxxxxxxâ] --> die Topics, die euch euer Broker fĂŒr den Sensor bereitstellt
username = âmy_userâ --> Username zur Authentifizierung gegenĂŒber Broker
password = âmy_passwordâ --> Passwort zur Authentifizierung gegenĂŒber Broker
data_format = âjsonâ --> Datenformat
Die oben genannten Infos sind die in jedem Fall zu bearbeitenden Parameter. AbhÀngig von eurem Broker und euren Anforderungen sind ggf. noch weitere Parameter erforderlich.
Auch hier muss bei jedem geĂ€nderten Parameter das â#â gelöscht werden.
Am besten beendet ihr nach dem Speichern der Datei Telegraf und InfluxDB nochmals und startet die Dienste wieder. Entweder durch einen reboot eures Systems oder mithilfe dieser Eingaben im Terminal:sudo systemctl stop influxdb.service
sudo systemctl stop telegraf.service
Wenn beide Systemdienste gestoppt sind, könnt ihr diese ĂŒber folgende Befehle wieder starten:sudo systemctl start influxdb.service
sudo systemctl start telegraf.service
Wenn ihr alles richtig gemacht habt, dĂŒrfen keine Fehlermeldungen beim Start der Systemdienste auftreten. Sobald einer eurer Sensoren nun Werte ĂŒbermittelt, werden diese ĂŒber den MQTT Broker an eure Installation weitergeben und in der InfluxDB gespeichert.
Â
Nachdem die Daten nun in die Datenbank geschrieben werden, schauen wir uns an, wie wir diese mithilfe von Grafana visualisieren können. Hierzu erstellen wir in einem Dashboard ein neues Panel.
Wenn alle Einstellungen gesetzt und bereits Daten aufgelaufen sind, bekommt man den entsprechenden Verlauf direkt angezeigt und kann (falls gewĂŒnscht) beginnen, das Panel weiter an die eigenen Anforderungen anzupassen.
[caption id="attachment_12090" align="aligncenter" width="1481"]Ihr wisst nun, wie ihr eine InfluxDB vorbereiten könnt, um Daten aus Telegraf entgegen zu nehmen. ZusĂ€tzlich haben wir exemplarisch einen MQTT Broker angebunden und einen Beispielverlauf in Grafana visualisiert. In einem weiteren Artikel erklĂ€re ich euch bald das âSchweizer Taschenmesserâ Telegraf etwas genauer und stelle euch mein aktuelles Projekt vor. Schaut also bald wieder hier vorbei! ;-)
COOKIES: