Installation InfluxDB, Grafana und Plugin

Es existiert ein neues InfluxDB Plugin für SmartHomeNG, das es ermöglicht Meßwerte in eine Influx Datenbank zu schreiben. Die Influx Datenbank wurde entwickelt als quasi eine SQL-ähnliche Datenbank für zeitabhängige Meßreihen. Viele Nutzer des Smarthome.py bemängelten, das eine RRD Datenbank einfach Werte ausdünnt im Laufe der Zeit und andererseits der Ansatz mit der SQLite nicht genau genug ist.

Achtung: Debian Jessie (8.x) Die neueren Linux Versionen setzen zunehmend auf systemd. Start/Stop Skripte werden nicht mehr gebraucht. Diese Anleitung berücksichtigt den systemd derzeit nicht.

Vorbedingung

Die folgende Anleitung geht davon aus, das ein stabiles System vorliegt mit Ubuntu 14.04.3 oder Debian als 64-bit Variante. Ihr könnt testen, welches System bei Euch installiert ist mit:


uname -i

Das ergibt für ein 64 Bit System x86_64. Alternativ geht auch


getconf -a | grep LONG_BIT

(Alternativ kann man auch die Sourcen für InfluxDB holen und eine 32 Bit Version bauen. Allerdings sprengt das den Rahmen dieses How-to.

Für alle weiteren Installationsschritte nutzen wir eine Root Shell


sudo -i

Nun installieren die InfluxDB Datenbank mit


wget https://s3.amazonaws.com/influxdb/influxdb_0.9.4.1_amd64.deb
dpkg -i influxdb_0.9.4.1_amd64.deb

Jetzt muß Influx noch einmalig gestartet werden:


/etc/init.d/influxdb start

Damit das Plugin später auch Daten in eine Datenbank schreiben kann, legen wir eine Datenbank an. Dazu startet wir das influx command line interface:


/opt/influxdb/influx

Um die existierenden Datenbanken aufzulisten, geben wir das Kommando SHOW DATABASES ein. Da wir frisch installiert haben, sollten lediglich name und _internal gelistet werden. Nun erstellen wir eine neue Datenbank mit CREATE DATABASE smarthome

Installieren des InfluxDB Python Clients


pip install influxdb

Installieren des Plugins

Am einfachsten ladet ihr Euch das Plugin als ZIP runter und kopiert den Inhalt in ein neues Unterverzeichnis /smarthome.py/plugins/influx

Konfiguration des Plugins

plugin.conf


influxdb:
    class_name: InfluxDB
    class_path: plugins.influx
#   influx_host: localhost
#   influx_port: 8083
#   influx_user: root
#   influx_pass: root
#   influx_db: smarthome
    influx_keyword: influx

Der Eintrag influx_keyword legt fest, welche Daten in die Datenbank geschrieben werden. Ihr könnt entweder z.B. influx wählen und dann würde dieses item in die Datenbank geschrieben werden:


Vorlauftemperatur:
    name: Vorlaufemperatur
    type: num
    knx_dpt: 9
    influx: true
    visu_acl: rw
    knx_init: 8/1/1
    cache: on

Eine Superidee des Entwicklers ist es jedoch als influx_keyword nun sqlite auszuwählen, dann werden alle Daten die in die SQLite Datenbank geschrieben werden zugleich auch in die Influx Datenbank geschrieben.

Nun müßt ihr noch smarthome.py neu starten, damit das Plugin auch genutzt wird.

Installieren von Grafana

Damit die Daten nun auch hübsch präsentiert werden können, installieren wir uns noch ein grafisches Frontend Grafana.

Wir nutzen wieder unsere Root Shell und erweitern unsere Liste für Repositories:


sudo -i
nano /etc/apt/sources.list

Dorthin idealerweise ganz unten einfügen:


deb https://packagecloud.io/grafana/stable/debian/ wheezy main

Jetzt müssen wir noch den Schlüssel holen damit wir signierte Packages installieren können:


curl https://packagecloud.io/gpg.key | sudo apt-key add -

Nächste Schritte sind aktualisieren der APT Datenbank und installieren von grafana


apt-get update
apt-get install grafana

Details der Grafana Installation:

Programm zu finden in /usr/sbin/grafana-server Das Init.d Skript liegt unter /etc/init.d/grafana-server, eine defaults Datei mit Umgebungsvariablen findet sich in /etc/default/grafana-server und eine Konfigurationsdatei in /etc/grafana/grafana.ini. Weiter gibt es noch ein Logfile zu finden unter /var/log/grafana/grafana.log und eine SQLite3 Datenbank als Basis für Grafana wird installiert unter /var/lib/grafana/grafana.db. Falls systemd vorhanden wird noch ein service installiert mit Namen grafana-server.service

Jetzt gilt es den Grafana Server zu starten mit


service grafana-server start

Jetzt könnt ihr auf den Grafana Server zuzugreifen mit der IP-Adresse und Port 3000. Benutzer und Passwort sind admin.

Damit der Grafana Server bei jedem Systemstart mitstartet, müssen wir ihn noch eintragen:


update-rc.d grafana-server defaults 95 10

So, nun sollte das ganze funktionieren. Bevor ihr an das Frontend vom Grafana geht, solltet ihr erstmal ein wenig Daten sammeln.

Datenverbindung zur Influx Datenbank

Wie oben müßt ihr mit Eurem Browser nun auf Port 3000 auf den Grafana Server zugreifen. Dort könnt ihr Euch dann mit Benutzer admin und Passwort admin anmelden. Der nächste Schritt ist die Einrichtung der Datenverbindung. Dazu wählt ihr Data Sources aus und dann oben in der Leiste Add New. Danach gebt Ihr als Name influxdb ein und als Type influxDB 0.9.x; den Haken bei default setzt man zweckmäßigerweise auch. Bei den http-Settings gebt Ihr diehttp://<IP>:8086, Access auf direct. Bei den InfluxDB Details als Datenbank smarthomemit User = root und Passwort root. Jetzt sollte Test Connection erfolgreich sein. Mit Klick auf Save seid Ihr jetzt einsatzfähig.

Erstes Dashboard anlegen

Ihr klickt jetzt auf Dashboards und anschließend auf Home. Weiter unten könnt Ihr nun +Newauswählen um ein neues Dashboard zu erzeugen. Wenn das geschehen ist, gibt es ein kleines grünes Rechteck. Darauf klickt ihr und dann weiter auf Add Panel und im Submenü Graph. Jetzt erscheint ein leeres Feld mit einem roten Ausrufezeichen in der oberen linken Ecke und einer Überschrift no title (click here). Darauf klickt ihr nun und wählt aus dem Popup Dialog Edit aus.

Unter Metrics ist jetzt eine Abfrage. Dort könnt Ihr – wenn bis dato alles richtig verlaufen ist und schon Werte in der Influx Datenbank zu finden sind – unter FROM select measurement eure erste Datenreihe eintragen. Ein Klick ganz oben auf das Diskettensymbol speichert nun das dashboard. Der Rest geht am besten über ausprobieren. Ein Klick auf den Farbstrich der Datenreihenlegende erlaubt es zu wählen ob die linke oder rechte Achse zur Anzeige genommen und welche Farbe zur Anzeige verwendet wird.

Viel Spaß!


Schreibe einen Kommentar

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