Startseite Hunde

ioBroker Influxdb 2.x und Grafana mit Portainer installieren

Da sich im Laufe der Zeit einige Objektdaten in ioBroker angesammelt haben, z.B. Temperaturen, Luftfeuchtigkeiten, die Einspeisung der Solaranlage, ich werde jetzt nicht alle aufzählen können, möchte ich euch in diesem Beitrag zeigen wie ihr für ioBroker, Influxdb 2.x und Grafana mit Portainer installieren könnt.

Influxdb 2.x ist eine Datenbank, die ich auch in meinem SmarHome benutze um Daten zu loggen. Dann kann man die Daten aus der Datenbank mit Grafana darstellen. Das gehen wir jetzt Schritt für Schritt einmal durch.

Inhaltsverzeichnis

Influxdb 2.x

Fangen wir mit influxdb 2.x an. Zuerst erstellen wir 2 Volumes für influxdb 2.x, dazu öffnen wir mal unser Portainer und klicken auf Volumes.

influxdb 2.x Volumen erstellen

Dann klicken wir auf + Add volume. Bei Name geben wir influxdb_data ein und dann auf Create the volume. Dann erstellen wir noch ein Volumes mit Namen influxdb_config. Dann sollte es aussehen wie im unteren Bild, 2 neue Volumes die noch nicht benutzt werden.

influxdb 2.x Container erstellen

Als nächstes erstellen wir den influxdb 2.x Container. Dazu klicken wir auf Containers, dann auf + Add container und haben folgendes Bild vor uns.

Hier geben wir wie im Bild oben bei Name influxdb2, bei image influxdb:latest und klicken auf +publish a new network port. Hier geben wir den host Port 8086 und den container port 8086 ein. Sollte der host Port 8086 schon anderwärtig vergeben sein, nehmen wir einen anderen freien Port, z.B. 8090 oder einen 8091. Jetzt binden wir unsere neuen Volumes ein, dazu einmal auf Volumes, dann 2 mal auf + map additional volume und geben die Daten so ein wie unten im Bild.

influxdb 2.x Volumes einbinden

container

				
					/etc/influxdb2
				
			

volume

influxdb_data auswählen

container

				
					/var/lib/influxdb2
				
			

volume

influxdb_config auswählen

Environment Variablen anlegen

Nun ein klick auf Env (Environment Variablen), hier bitte 5 mal auf + Add an environment variable. Hier geben wir nun ein Datenbanknamen (INFLUXDB_DB), einen Admin Benutzer (INFLUXDB_ADMIN_USER) z.B. admin_user, ein Admin Passwort (INFLUXDB_ADMIN_PASSWORD) z.B. admin_password, eine Organization (INFLUXDB_ORG) z.B. my_org, und ein Bucket (INFLUXDB_BUCKET) z.B. mybucket ein. In die Buckets werden später Daten geschrieben. Die Daten müsst ihr euch merken, die braucht ihr noch.

Restart Funktion und Container erstellen

Als letztes müssen wir noch die Restart Funktion angeben. In Restart policy wählen wir mal Always an. Mit einem Klick auf Deploy the container sollte der influxdb 2.x Container runtergeladen und erstellt werden. Das kann eine Zeit dauern, sollte aber mit running in grün angezeigt werden. Sollte bis hier hin alles funktioniert haben, können wir weiter machen. Falls nicht müssen wir den Fehler suchen, und alles nochmal kontrollieren.

Influxdb 2.x Adapter in ioBroker installieren

Ich gehe davon aus, das alles in Ordnung war, und gehe jetzt nach ioBroker und installiere den influxdb Adapter. Dazu einmal auf Adapter klicken, da gebe ich bei Nach Namen filtern mal influxdb ein.

Ein Klick auf die 3 Punkte, dann auf das Plus, und zuletzt auf Instanz hinzufügen sollte den Adapter installieren.

influxdb 2.x Adapter konfigurieren

 

Das nächste Fenster schließen wir und sind dann in der Konfiguration. Hier ändern wir die DB-Version auf 2.X, die IP Adresse des Host Rechners, bei Port sollte 8086 schon drin stehen, muss nur geändert werden wenn ihr vorhin einen anderen Port als den 8086 genommen habt. Bei Organisation tragen wir myorg ein. Was jetzt noch fehlt ist der Token von influxdb 2.x. 

Influxdb 2.x starten

Dazu starten wir mal unser influxdb 2.x indem wir unsere localhost IP (IP-Adresse des Servers wo auch der ioBroker drauf läuft),  gefolgt von einem Doppelpunkt und der 8086 dahinter. Bei meinem Testsystem würde es so aussehen, 192.168.44.100:8086. Die Antwort sollte dann ungefähr so aussehen, je nach Version.

Hier klicken wir auf Get Started, dann sollte folgendes Bild erscheinen. Hier geben wir jetzt unsere Daten ein die wir vorhin festgelegt haben, und klicken dann auf Continue. Könnte sein das das Passwort oder der Benutzer angemeckert wird wenn ihr die so wie ich genommen habt.

Token für den ioBroker Adapter

Je nach Version könnte folgendes Bild auch anders aussehen. Die Zahlen und Buchstabenkombination in dem Schwarzen Feld ist unser Token,  den kopieren wir, und fügen ihn in ioBroker ein, evtl. auch zur Sicherheit mal in eine Textdatei. Unter Umständen kommen wir je nach Version schlecht wieder an den Token ran.

Im ioBroker einmal auf Speichern, dann solltet ihr bei klick auf Test ein  OK bekommen. Wenn ihr jetzt auf Schließen klickt, sollte der influxdb 2.x Adapter wie bei mir grün sein. Das ist schon mal ein Erfolg.

Grafana

Grafana Volumes erstellen

Als nächstes werden wir Grafana installieren. Für Grafana erstellen wir zuerst mal wieder 2 Volumes, grafana_data und grafana_ini, geht so vor wie bei den influxdb Volumes.

Grafana Container erstellen

Dann erstellen wir den Grafana Container. Dazu wieder auf + Add container. Bei Name geben wir grafana ein, bei Image grafana/grafana:latest, so wie im Bild unten.

Grafana Volumes einbinden

Bei Volumes wieder 2 mal auf + map additional volume. Hier geben wir wieder die container Pfade und die Volumes ein, so wie im Bild unten.

Container

				
					/etc/grafana
				
			

 

Volume

grafana_ini auswählen

 

Container

				
					/var/lib/grafana
				
			

 

Volume

grafana_data auswählen

Grafana Restart Funktion und Container erstellen

Als letztes müssen wir wieder die Restart Funktion angeben. In Restart policy wählen wir wieder Always an. Mit einem Klick auf Deploy the container sollte auch jetzt der grafana Container runtergeladen und erstellt werden. Das kann wieder eine Zeit in Anspruch nehmen, sollte dann aber auch mit running in grün angezeigt werden.

Grafana starten

Jetzt starten wir mal grafana indem wir wieder die localhost IP (IP-Adresse des Servers wo auch der ioBroker drauf läuft), gefolgt von einem Doppelpunkt und der 3000 dahinter. Das sollte dann ungefähr so aussehen, je nach Version.

Der Standard Benutzername ist admin, das Standard Password ist auch admin. Nach dem Klick auf Log in werdet ihr aufgefordert das Password zu ändern, das macht ihr jetzt und merkt es euch. Wenn ihr  alles richtig gemacht habt, solltet ihr das folgende Bild vor haben.

Testvariable in ioBroker erstellen

Für einen ersten Test brauchen wir jetzt eine Objektvariable in der wir Daten mit loggen. Dazu öffnen wir ioBroker und öffnen mal die Objekte. Da ich in meinem Testsystem momentan keine brauchbare Variable habe, erstelle ich mir eine Testvariable. Ihr könnt auch einen vorhandenen Messwert nehmen.

In den Objekten lege ich mir unter 0_userdata.0 die Variable testinfluxdb an, dazu klicke ich auf das + Zeichen. In dem Fenster gebe ich bei Typ Zustand, bei Zustandstyp Zahl, kann auch number sein, und bei Name testinluxdb ein. Ein Klick auf Hinzufügen erstellt die neue Variable.

Nun können wir die neue Variable sehen, und sehen auch, das die Variable den Wert 0 hat. Um die Variable jetzt loggen zu können, klicken wir mal auf das Zahnrad auf der rechten Seite.

In dem neuen Fenster wählen wir bei Einstellungen influxdb.0 mal das Aktiviert an. Mit den restlichen Einstellungen könnt ihr später mal rumspielen, ich lasse alles Andere so wie es ist, und klicke auf Speichern und Schliessen.

Jetzt sollte das Zahnrad einen dunkleren Ton angenommen haben, und die Änderungen des Wertes werden in die indluxdb Datenbank geloggt. Ich schreibe jetzt händisch mal ein paar Werte in die Variable. Wollt ihr das auch tuen, dann klickt auf den momentanen Wert 0 der Variable, ändert den Wert auf irgend einen anderen Wert und klickt auf Wert setzen. Das macht ihr jetzt für 5-10 Werte. Diese Werte sollten nun in der Datenbank vorhanden sein.

Das prüfen wir, in dem wir influxdb 2.x starten und uns mit unseren Benutzerdaten anmelden. In dem nächsten Bild klicken wir mal auf das kleine Diagramm (Data Explorer) links unter dem Pfeil nach oben.

Unsere neue variable in influxdb 2.x

Nun sollten wir unsere neue Variable sehen, so wie bei mir. Wir sehen unsere Datenbank, iobrokerdb, und rechts die erste Variable. In meinem Fall 0_userdata.0.testinfluxdb.

influxdb neue variable

Wir wählen mal die neue Variable an und klicken dann auf Value, jetzt einmal auf Submit und sehen dann auch schon unser erstes Diagramm.

influxdb erstes Diagramm

Unser erstes Script für Grafana

Klicken wir mal auf den Script Editor, es öffnet sich ein neues Fenster mit einem Script, dieses Script brauchen wir gleich in Grafana.

Grafana starten und Datenquelle einbinden

Wir starten nun Grafana, <euere IP-Adress>:3000. Melden uns wieder an, mit admin und euerem neuen Passwort. Jetzt stellen wir als erstes mal eine Verbindung zur Datenbank her, dazu einmal oben links neben Home auf das Menü, dann auf Connections.

Aus der Auswahl suchen wir uns jetzt influxDB aus und klicken es mal an.

Im nächsten Bild klicken mal auf Add new data source.

Grafana konfigurieren

Hier müssen wir nun unsere Konfiguration machen, Name, Query language, URL, User, Password, Organization, Token, Default Bucket. Den Namen lassen wir so, bei Query language muss auf Flux umgestellt werden, bei URL muss <eure IP-Adresse:8086> rein. Bei User und Password tragt ihr eure Benutzerdaten ein. Bei der Organization hatten wir myorg, den Token aus influxdb 2.x, ich hoffe ihr habt euch den gesichert, und bei Default Bucket kommt der Name der Datenbank rein, iobrokerdb. Zur Not könnt ihr den auch aus dem influxdb Adapter vom ioBroker kopieren.

Wenn alles stimmt und auf Save & test geklickt wird, sollte unten datasource is working. x buckets found, bei mir sind es 4. Wenn nicht, haben wir noch irgendwo einen Fehler und es muss nochmal alles kontrolliert werden. Bei Password steht jetzt configured drin, das ist richtig.

Das erste Dashboard

Was wir als nächstes brauchen ist ein Dashboard, das erstellen wir uns jetzt. Ein klick links im Menü auf Dashboards, dann auf + Create Dashboard.

Im nächsten Fenster einmal auf + Add visualization.

Auswahl der Datenbank

Hier wählen wir die Datenbank aus, die wir bei der Erstellung des influxdb containers erstellt haben. Bei Select data source wählen wir also influxdb default aus. Hier befindet sich unsere testinfluxdb Variable die wir in Grafana darstellen wollen.

Was uns jetzt fehlt ist das Skript, was wir in influxdb schonmal gesehen haben. Ihr erinnert euch, in influxdb 2.x im Data Explorer, iobrokerdb, 0_userdata.0.testinluxdb, value, dann auf Script Editor.

Das fertige Skript

Hier im Fenster sehen wir das fertige Skript. Das markieren wir uns, dann einmal Strg +C und kopieren es.

In unserem Grafana Fenster, das wir vorhin geöffnet haben, fügen wir das Skript mit Strg +V unten ein.

Dashboard mit ersten Daten

Wenn wir jetzt einmal auf No data im oberen Fenster klicken sollten Daten zu sehen sein, wie im unteren Bild. Das sieht bei euch wahrscheinlich anders aus. Hier haben wir jede Menge Möglichkeiten das Aussehen unseres Dashboards zu verändern. Mit der rechten Spalte könnt ihr euch erst mal selber beschäftigen. Es können Farben, Linienstärken, Schatten, ein Panel Title und vieles mehr geändert werden. Seit ihr fertig, dann einmal oben rechts auf Save.   

Hier geben wir noch einen Title ein, z.B. Test Dashboard, und klicken nochmal auf Save.

Das fertige Dashboard

Jetzt sollte unter Dashboards unser Test Dashboard zu sehen sein. Klickt das Dashboard mal an, so oder so ähnlich sollte es jetzt aussehen.

Wie wir das fertige Dashboard in ioBroker bekommen, und noch einiges mehr, werde ich euch in einem weiteren Beitrag zeigen. Ich hoffe es hat alles funktioniert. Wenn noch Fragen sind einfach einen Kommentar oder eine E-Mail an mich, und ich werde zeitnah antworten. Hat euch der Beitrag  gefallen, lasst es mich wissen. Über einen Daumen hoch, oder über einen Kommentar würde ich mich sehr freuen.  

3 Kommentare zu „ioBroker Influxdb 2.x und Grafana mit Portainer installieren“

  1. Hallo,
    danke für dieses Tutorial. Ich konnte danach sehr gut InfluxDB_2.7.6 und auch Grafana in Portainer installieren.
    Nicht verstanden habe ich allerdings warum du das Volumes influxdb_config angelegt hast.
    Und, eigentlich unwichtig, aber beim Anlegen des InfluxDB Containers schreibst du Environment Variable für Organization INFLUXDB_ORG = my_org. Später im Text heißt diese dann nur noch myorg. Die past und copy Fraktion hätte dann vielleicht ein Problem. 🙂 und bei der Erstellung des Grafana Containers habe ich noch das Port Mapping zu Port 3000 mit angegeben. Vielleicht funktioniert es auch ohne.
    Danke und Grüße

Kommentar verfassen

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert

Nach oben scrollen
Consent Management Platform von Real Cookie Banner