Grafana Verbindung zu InfluxDB v2 mit InfluxQL

Aus Laub-Home Wiki

Nutzt man die InfluxDB in Version 2.x, dann muss man bei Grafana diese als Flux Query Language einrichten um eine Verbindung mit der InfluxDB erstellen zu können. Diese hat aber den Nachteil das man hier nicht wie gewohnt einfach neue Querries "Zusammenklicken" kann. Eine Lösung ist es die Queries vorab im Webinterface der InfluxDB zusammenzubauen und via Copy and Paste dann zu übertragen. Oder ihr stellt die InfluxDB so ein, das auch die alten InfluxQL Querries funktionieren. Wie das geht und wie ihr Grafana dann konfigurieren müsst um euch an die InfluxDB zu verbinden findet ihr hier.

Was passiert hier

zum Verständnis, die neue InfluxDB 2.x arbeitet mit Buckets und API Tokens zur Authentifizierung. Für die alte InlfluxQL benötigen wir aber eine Datenbank und Benutzer und Passwort. Deshalb Mappen wir hier nun den Bucket auf eine Datenbank und vergeben via Benutzername und Passwort die richtigen Rechte. Dann können wir uns ganz normal an die Datenbank verbinden, wie als wäre es eine InfluxDB v1.x. Den dennoch benötigten API Token übergeben wir dann als HTTP Header.

InfluxDB konfigurieren

Als erstes verbinden wir uns an den Docker Container und starten die Bash darin um später die influx Befehle abzusenden. Falls ihr keinen Docker Container verwendet, überspringt es einfach.

docker exec -ti openhab3_influxdb_1 bash

Nun prüfen wir ob wir schon einen Benutzer Account haben, der für InfluxDB v1 verwendbar ist:

influx v1 auth list

ist der Output leer oder ihr wollt einen neuen Benutzer anlegen, könnt ihr einen Benutzer mit dem folgenden Befehl anlegen. Die Bucket ID bekommt ihr im InfluxDB Webinterface unter Data --> Buckets finden. Einfach auf die Bucket ID gehen um diese zu kopieren.

influx v1 auth create --read-bucket 1883831a53fd099f --username grafana

Ihr werdet nun aufgefordert ein Passwort für den Benutzer einzugeben. Ich habe hier nur einen Read-Only User für Grafana eingerichtet. solltet ihr auch Write rechte brauchen, dann einfach noch --write-bucket BUCKETID als Parameter dazu nehmen. Nun schauen wir ob es eine Verknüpfung des gewünschten Buckets zu einer Datenbank gibt:

influx v1 dbrp list

Sollte der Output hier leer sein, oder nicht das gewünschte Mapping da sein, mappen wir noch das gewünschte Bucket auf einen Datenbank Namen:

influx v1 dbrp create --db openhab_db --rp autogen --bucket-id 1883831a53fd099f --default

Nun haben wir als Datenbank openhab_db und einen Benutzer grafana und Passwort für die Verbindung angelegt. Den API Token könnt ihr im InfluxDB Webinterface auslesen oder anlegen.

Grafana InfluxQL Verbindung einrichten

Nun loggen wir uns in Grafana ein und gehen zu Configuration --> Data Sources und suchen hier nach InfluxDB. Dann konfigurieren wir die Datasource wie folgt:

Wir wählen InfluxQL aus. Dann geben wir die URL der InflxuDB an. Es muss ein Header hinzugefügt werden:

Header: Authorization

Value: Token y0uR5uP3rSecr3tT0k3n

Euren Token findet ihr in eurem InfluxDB Webinterface unter Data --> API Tokens. Das Value ist "Token + Leerzeichen + EuerAPIToken"

Bei Database, User und Passwort nehmt ihr die Werte die ihr oben eingerichtet habt. Wichtig ist das bei der HTTP Methode GET ausgewählt wird. Dann zum Schluss Save & Test.


Wenn der Test erfolgreich ist, solltet ihr wie gewohnt in den Dashboards mittels InfluxQL Query Grafiken bauen.

Quellen