Grafana: Docker - Daten visualisieren und Alarme definieren

 

Grafana ist eine Web-Applikation f√ľr das Visualisieren von Daten. Mit Grafana k√∂nnen in wenigen Minuten ansehnliche Charts erstellt oder Alarme definiert werden.

Docker Basics

Docker ermöglicht es, Services oder Applikationen per Befehl in einem sogenannten Container zu starten.
Ein Container ist eine vom Betriebssystem (OS) unabhängige isolierte Umgebung:
Beim ersten Start eines Containers, lädt Docker selbstständig alle notwendigen Quellen
aus dem Internet.
Docker kann unter Windows, macOS oder einer Linux-Distribution installiert werden,
siehe auch: Docker

Voraussetzungen

Als Voraussetzung f√ľr Grafana wird eine Datenquelle ben√∂tigt, am besten eine "Time series database", also eine f√ľr Zeitdaten optimierte Datenbank. Ein Beispiel einer solchen "Time series database" ist InfluxDB, siehe: Influx DB - Time series database.

Damit in Grafana Daten angezeigt werden k√∂nnen, m√ľssen diese nat√ľrlich irgendwie in der Datenbank landen, zum Beispiel √ľber ioBroker, siehe: ioBroker Installieren - Docker oder HomeAssistant, siehe Home-Assistant Docker Conbee 2 und Zigbee2MQTT / deCONZ.

Grafana

Als Voraussetzung verwende ich ein eigenes Netzwerk, sollte dieses bereits von ioBroker vorhanden sein, ist der folgende Befehl hinfällig.

docker network create smart-home

F√ľr den eigentlichen Start von Grafana, habe ich folgenden Befehl verwendet.

mkdir -p /docker
mkdir -p /docker/grafana
docker run -d \
-p 3000:3000  \
--network=smart-home \
--restart=always --name=grafana \
-v /docker/grafana:/var/lib/grafana grafana/grafana

Als Username wird nach dem ersten Start "admin" und das Kennwort "admin" verwendet.

Datenquelle

Als Datenquelle verwende ich einen zuvor erstellten Influx-Container, siehe: Influx DB - Time series database

Informationen zur Anbindung einer InfluxDB Version 2¬† folgen in K√ľrze.

Einbinden der ioBroker-Werte der Influx-DB und erstellen von Diagrammen (Charts)

Details zum ioBroker Setup, siehe: ioBroker Installieren - Docker

Panel mit 2 verschiedenen Einheiten

Home-Dashboard tauschen

Um ein beliebiges Dashboard als Startseite zu verwenden, muss dieses als erstes als Lesezeichen markiert und dann in den Einstellungen ausgewählt werden.

Grafana-Image-Renderer Docker

Um f√ľr die Benachrichtigung Bilder anh√§ngen zu k√∂nnen, wird f√ľr Docker ein eigener Image-Renderer-Container ben√∂tigt, dieser kann wie folgt gestartet werden:

docker run -d \
--name=renderer \
--restart=always \
-p=3001:8081 \
grafana/grafana-image-renderer

Damit der bestehende Grafana-Container mit dem Image-Renderer spricht, musste ich den Container entsprechend anpassen:

Die Adresse 192.168.1.5 ist die IP-Adresse des Hosts, diese muss entsprechend angepasst werden:

docker stop grafana
docker rm grafana

docker run -d \
-p 3000:3000  \
--network=smart-home \
-e "GF_RENDERING_SERVER_URL=http://192.168.1.5:3001/render" \
-e "GF_RENDERING_CALLBACK_URL=http://192.168.1.5:3000/" \
-e "GF_SERVER_DOMAIN=192.168.1.5" \
--restart=always \
--name=grafana \
-v /docker/grafana:/var/lib/grafana grafana/grafana

InfluxDB Error: unsupported mean iterator type: *query.booleanInterruptIterator

Eine Kleinigkeit war f√ľr mich am Anfang nicht ganz selbsterkl√§rend. Beim Erstellen eines Charts mit True/False-Werten muss "Select" auf "last()" ge√§ndert werden, ansonsten kommt der Fehler: unsupported mean iterator type: *query.booleanInterruptIterator

Docker: Plugins installieren

Plugins k√∂nnen √ľber die Grafana-CLI installiert werden:

grafana-cli plugins install PluginName

Bei Einsatz des Docker-Container m√ľssen wir uns vorher mit "docker exec" in den Container verbinden:

bernhard@sox:~$ docker exec -it grafana /bin/bash
bash-5.0$ grafana-cli plugins install natel-discrete-panel
installing natel-discrete-panel @ 0.1.1
from: https://grafana.com/api/plugins/natel-discrete-panel/versions/0.1.1/download
into: /var/lib/grafana/plugins

Benachrichtigungen per Signal

Signal Nachrichten per API versenden: signal-cli-rest-api

Fazit

Bei meinem ersten Versuch Grafana zu starten war ich schon sehr √ľberrascht, wie schnell, einfach und selbsterkl√§rend damit Daten visualisiert werden k√∂nnen. Voraussetzung f√ľr die Verwendung von Grafana ist nat√ľrlich eine Datenbank, was mit Docker und InfluxDB auch in wenigen Minuten erledigt ist. Dann sind da noch die eigentlichen Daten f√ľr die Datenbank, diese kommen bei mir, wie bereits beschrieben, von Home Assistant.

positive Bewertung({{pro_count}})
Beitrag bewerten:
{{percentage}} % positiv
negative Bewertung({{con_count}})

DANKE f√ľr deine Bewertung!

Aktualisiert: 12.12.2023 von Bernhard | Translation English |ūüĒĒ | Kommentare:0

‚ě® MQTT - Broker : Docker Setup | ‚ě¶ Smart Home | InfluxDB: Time series database - Docker ‚ě®
‚ě¶ Container | sichere https Verbindung: Traefik Reverse Proxy + Let¬īs Encrypt ‚ě®

Top-Artikel in diesem Bereich


Smart-Home-Plattform - Systeme: ioBroker vs. Home-Assistant

Meine Empfehlung, m√ľsste ich mich zwischen ioBroker und Home Assistant entscheiden, w√ľrde zugunsten von Home Assistant fallen. Mit Home Assistant f√§llt der Start wesentlich leichter und dank der zahlreichen Plugins kann Home Assistent allen Bed√ľrfnissen angepasst werden


Wasserz√§hler √ľberwachen, Verbrauch aufzeichnen: ESP32-Cam

Vorab schon mal ein herzliches Dankesch√∂n an die Macher des "AI-on-the-edge-device" Digitizer. Das Projekt erm√∂glicht das Digitalisieren des Wasserverbrauchs einer analogen Wasseruhr mit einer 10 ‚ā¨ billigen ESP32-Cam. Wie das genau funktioniert, beschreibe ich in diesem Artikel.


ioBroker installieren - Docker

Mit ioBroker können verschiedene Automatisierungslösungen oder Geräte in einem System zusammengefasst werden. Um bestimmte Gateways oder Geräte ansprechen zu können, werden in ioBroker verschiedene Adapter verwendet.

Fragen / Kommentare


Durch die weitere Nutzung der Seite stimmst du der Verwendung von Cookies zu Mehr Details