[email protected]

Anleitung · IoT

Grafana IoT-Dashboard mit InfluxDB: Schritt für Schritt self-hosted

Hinweis zum Inhalt: Versionen, Befehle und Preise können sich ändern. Bitte prüfen Sie kritische Schritte vor dem produktiven Einsatz eigenständig. Dieser Leitfaden ersetzt keine individuelle Fach-, Rechts- oder Steuerberatung.

Souveränes IoT-Monitoring mit Grafana und InfluxDB aufbauen? WZ-IT plant, betreibt und integriert den kompletten Open-Source-Stack auf Ihrer Infrastruktur - vom Sensor bis zum Dashboard. Zur Grafana-IoT-Plattform - Erstgespräch buchen

Ein souveränes Grafana-IoT-Dashboard mit InfluxDB bauen Sie in sechs Schritten: InfluxDB als Zeitreihen-Datenbank aufsetzen, IoT-Daten per MQTT und Telegraf (oder aus ThingsBoard) hineinschreiben, InfluxDB in Grafana als Datenquelle verbinden, Dashboard und Panels anlegen und schließlich Alerts definieren. Der gesamte Stack ist Open Source und läuft self-hosted auf Ihrer eigenen Infrastruktur (Proxmox, Hetzner oder On-Premises) - ohne Cloud-Lock-in und ohne Per-Device-Lizenz. Aktuelle Bausteine (Stand Oktober 2026): Grafana OSS 13.2.x unter AGPLv3, InfluxDB 3 Core (v3.12) bzw. InfluxDB OSS 2.x, und Telegraf 1.40.2 als Datensammler.

Inhaltsverzeichnis


Architektur: Datenfluss vom Sensor zum Dashboard

Der bewährte self-hosted IoT-Stack besteht aus vier entkoppelten Bausteinen, die jeweils eine klare Aufgabe haben:

  1. Sensoren und Gateways senden Telemetrie per MQTT an einen Broker.
  2. MQTT-Broker (z. B. Mosquitto) nimmt die Nachrichten entgegen und entkoppelt Sender und Empfänger.
  3. Telegraf abonniert die Topics, parst die Nutzdaten und schreibt sie in InfluxDB als Zeitreihen-Datenbank.
  4. Grafana liest InfluxDB als Datenquelle und visualisiert die Daten in Dashboards und alarmiert bei Schwellwerten.

In der IoT-Architektur nach Schichten sitzt InfluxDB damit auf der Plattform-/Persistenzschicht, Grafana auf der Anwendungsschicht. Der entscheidende Vorteil dieser Trennung: Jeder Baustein ist austauschbar, keiner zwingt Sie in ein proprietäres Format. Sie können Telegraf später durch Node-RED ersetzen, den Broker skalieren oder InfluxDB gegen eine andere Zeitreihen-Datenbank tauschen, ohne das Dashboard neu zu bauen.

Welche InfluxDB-Version passt

InfluxData bietet 2026 mehrere Linien parallel an. Die Wahl entscheidet über Lizenz, Langzeitspeicherung und Query-Sprache:

Variante Lizenz Eignung Query-Sprachen
InfluxDB 3 Core (v3.12) MIT / Apache 2.0 Single-Node, aktuelle Daten, Edge; keine Compaction SQL, InfluxQL
InfluxDB 3 Enterprise kommerziell (Heim-Tier gratis) Langzeit, Compaction, HA, Multi-Node SQL, InfluxQL
InfluxDB OSS 2.x MIT self-hosted IoT mit Langzeitspeicherung, weiterhin gepflegt Flux, InfluxQL

InfluxDB 3 Core ist die quelloffene Single-Node-Variante (dual lizenziert unter MIT/Apache 2.0, github.com/influxdata/influxdb). Sie ist auf aktuelle Daten optimiert und besitzt laut Hersteller keine Compaction und keine Langzeit-Optimierung - ideal für Edge und kurze Aufbewahrung. InfluxDB 3 Enterprise ergänzt Compaction, historische Queries und Hochverfügbarkeit (influxdata.com); für nicht-kommerziellen Heimgebrauch gibt es eine kostenlose Single-Node-Lizenz (zwei Kerne), kommerziell ist sie kostenpflichtig. Für viele self-hosted IoT-Projekte mit echter Langzeithistorie ist InfluxDB OSS 2.x (MIT, Flux + InfluxQL) nach wie vor die pragmatischste, stabilste Wahl - sie ist laut Roadmap weiter gepflegt und nicht abgekündigt. Die folgenden Schritte zeigen wir mit InfluxDB 2.x; der Pfad für InfluxDB 3 ist nahezu identisch, nur die Query-Sprache wechselt von Flux zu SQL/InfluxQL.

Schritt 1: InfluxDB self-hosted aufsetzen

Am einfachsten läuft der Stack containerisiert. Eine minimale docker-compose.yml für InfluxDB plus Grafana:

services:
  influxdb:
    image: influxdb:2.9
    ports: ["8086:8086"]
    environment:
      DOCKER_INFLUXDB_INIT_MODE: setup
      DOCKER_INFLUXDB_INIT_USERNAME: admin
      DOCKER_INFLUXDB_INIT_PASSWORD: "change-me"
      DOCKER_INFLUXDB_INIT_ORG: wz-it
      DOCKER_INFLUXDB_INIT_BUCKET: iot
      DOCKER_INFLUXDB_INIT_ADMIN_TOKEN: "my-super-secret-token"
    volumes:
      - influx-data:/var/lib/influxdb2

  grafana:
    image: grafana/grafana:13.2.3
    ports: ["3000:3000"]
    volumes:
      - grafana-data:/var/lib/grafana

volumes:
  influx-data:
  grafana-data:

Grafana veröffentlicht neue Docker-Images seit Version 12.4 nur noch unter grafana/grafana, das Repository grafana/grafana-oss wird nicht mehr aktualisiert (Grafana-Doku). Das Image influxdb:2.9 enthält die aktuelle 2.x-Linie (v2.9.1). Nach docker compose up -d ist InfluxDB unter Port 8086 erreichbar. Wichtig sind drei Begriffe: die Organisation (wz-it), der Bucket (iot, die Datenbank für Ihre Messreihen) und der API-Token, den Telegraf und Grafana zum Schreiben bzw. Lesen brauchen. In Produktion legen Sie pro Aufgabe getrennte Tokens mit minimalen Rechten an (ein reiner Schreib-Token für Telegraf, ein Lese-Token für Grafana) und stellen TLS über einen Reverse-Proxy voran.

Schritt 2: IoT-Daten per MQTT und Telegraf schreiben

Telegraf (aktuell v1.40.2 vom 12. Oktober 2026, MIT-Lizenz) ist der Standard-Agent, um MQTT-Telemetrie nach InfluxDB zu bringen. Das mqtt_consumer-Input-Plugin abonniert Topics, das influxdb_v2-Output-Plugin schreibt nach InfluxDB. Eine schlanke telegraf.conf:

[[inputs.mqtt_consumer]]
  servers   = ["tcp://mosquitto:1883"]
  topics    = ["sensors/#"]
  username  = "telegraf"
  password  = "change-me"
  data_format = "json_v2"

  [[inputs.mqtt_consumer.json_v2]]
    [[inputs.mqtt_consumer.json_v2.field]]
      path = "temperature"
      type = "float"

[[outputs.influxdb_v2]]
  urls         = ["http://influxdb:8086"]
  token        = "my-super-secret-token"
  organization = "wz-it"
  bucket       = "iot"

Sendet ein Sensor an sensors/halle1/temp ein JSON wie {"temperature": 21.7}, landet der Wert als Messreihe mqtt_consumer mit dem Feld temperature im Bucket iot. Das Topic wird automatisch als Tag mitgespeichert, sodass Sie später pro Gerät oder Halle filtern können. Wer komplexere Transformationen, Protokollübersetzung oder Anreicherung braucht, schaltet statt oder neben Telegraf Node-RED zwischen Broker und Datenbank. Das influxdb_v2-Output funktioniert identisch gegen InfluxDB 3, da dessen Write-API v2-kompatibel ist.

Schritt 3: ThingsBoard-Daten nach InfluxDB

Betreiben Sie bereits ThingsBoard als IoT-Plattform, gibt es drei saubere Wege, die Telemetrie zusätzlich in InfluxDB und Grafana zu bekommen:

  • Parallel per Telegraf (entkoppelt): Da die Geräte ohnehin per MQTT senden, lässt Telegraf dieselben Topics mitlesen und schreibt nach InfluxDB. ThingsBoard und InfluxDB erhalten beide die Rohdaten, ohne sich gegenseitig zu beeinflussen.
  • Über die Rule Engine: In der ThingsBoard-Rule-Chain leitet ein REST-API-Call- oder MQTT-Node die Telemetrie an Telegraf bzw. direkt an die InfluxDB-Write-API weiter. So wandern nur ausgewählte, bereits prozessierte Werte in die Zeitreihen-Datenbank.
  • Direkt aus der Datenbank: ThingsBoard speichert Telemetrie je nach Setup in PostgreSQL/TimescaleDB. Grafana kann diese über die eingebaute PostgreSQL-Datenquelle direkt lesen, ganz ohne zweite Datenbank.

Welcher Weg passt, hängt davon ab, ob Grafana nur ergänzen oder InfluxDB die führende Historie bilden soll. Für reines Langzeit-Monitoring bevorzugen wir die entkoppelte Telegraf-Variante.

Schritt 4: Grafana als Datenquelle verbinden

Grafana bringt die InfluxDB-Datenquelle eingebaut mit, ein Plugin ist nicht nötig (grafana.com). Im Grafana-UI:

  1. Connections > Data sources > Add data source > InfluxDB öffnen.
  2. Query language wählen: bei InfluxDB 2.x Flux, bei InfluxDB 3 SQL oder InfluxQL.
  3. URL eintragen: http://influxdb:8086.
  4. Authentifizierung setzen: bei Flux Organisation, Token und Default-Bucket; bei InfluxQL/SQL den Datenbank-/Bucket-Namen und den Token.
  5. Save & test klicken - Grafana bestätigt die Verbindung.

Verwenden Sie für Grafana einen eigenen Lese-Token mit minimalen Rechten, nicht den Admin-Token aus dem Setup.

Schritt 5: Dashboard und Panels bauen

Legen Sie über Dashboards > New > New dashboard > Add visualization das erste Panel an und wählen die InfluxDB-Datenquelle. Ein Time-Series-Panel für die mittlere Temperatur sieht in Flux (InfluxDB 2.x) so aus:

from(bucket: "iot")
  |> range(start: v.timeRangeStart, stop: v.timeRangeStop)
  |> filter(fn: (r) => r._measurement == "mqtt_consumer" and r._field == "temperature")
  |> aggregateWindow(every: v.windowPeriod, fn: mean)

Die Variablen v.timeRangeStart, v.timeRangeStop und v.windowPeriod füllt Grafana automatisch aus dem Zeitfilter und der Panel-Breite - die Query passt sich also an den gewählten Zeitraum an. Für InfluxDB 3 nutzen Sie stattdessen InfluxQL oder SQL, etwa SELECT mean(temperature) FROM mqtt_consumer WHERE $timeFilter GROUP BY time($interval).

Bewährte Panel-Typen für IoT:

  • Time series für Verläufe (Temperatur, Druck, Durchsatz).
  • Stat und Gauge für aktuelle Einzelwerte mit Schwellwert-Färbung.
  • State timeline für An/Aus- oder Status-Verläufe.
  • Table für die letzten Rohmesswerte je Gerät.

Mit Dashboard-Variablen (z. B. eine Variable gerät, gespeist aus den Topic-Tags) wird ein Dashboard für die ganze Flotte wiederverwendbar, statt es pro Maschine zu duplizieren.

Schritt 6: Alerts einrichten

Grafana nutzt seit den 9er-Versionen das Unified Alerting, das direkt auf den Datenquellen läuft - self-hosted, ohne Zusatzdienst. Eine Alarmregel für zu hohe Temperatur richten Sie so ein:

  1. Unter Alerting > Alert rules > New alert rule eine InfluxDB-Query als Bedingung definieren (z. B. Mittelwert der letzten 5 Minuten).
  2. Eine Threshold-Expression setzen, etwa IS ABOVE 60.
  3. Eine Pending period wählen (z. B. 2 Minuten), damit kurze Spitzen nicht sofort alarmieren.
  4. Über Contact points das Ziel festlegen: E-Mail, Slack, Telegram, Webhook oder PagerDuty.
  5. Mit Notification policies steuern, welche Alarme an welches Team gehen.

So entsteht eine vollständige, herstellerneutrale Alarmierungskette vom Schwellwert bis zur Benachrichtigung - ohne externe Monitoring-SaaS.

Was kostet das: self-hosted vs. Grafana Cloud

Der self-hosted Stack ist softwareseitig kostenlos: Grafana OSS unter AGPLv3, InfluxDB 3 Core unter MIT/Apache 2.0 bzw. InfluxDB OSS 2.x unter MIT, Telegraf unter MIT. Es bleiben Betriebskosten (Server, Storage, Wartung). Die Cloud-Alternativen rechnen anders ab:

Modell Kosten (Stand Oktober 2026) Datenhoheit
Self-hosted OSS-Stack nur Server + Betrieb, keine Lizenz volle EU-Datenhoheit
Grafana Cloud Free 0 EUR: 10.000 aktive Serien, 3 Nutzer, 14 Tage Aufbewahrung bei Grafana Labs
Grafana Cloud (kostenpflichtig) nutzungsbasiert nach Serien/GB bei Grafana Labs
InfluxDB 3 Enterprise kommerziell (Heim-Tier gratis) je nach Hosting

Grafana Cloud ist für kleine Setups bequem, der kostenlose Tarif aber eng begrenzt (10.000 Serien, 14 Tage Aufbewahrung, grafana.com/pricing). Bei IoT-typisch vielen Serien und langer Historie skalieren nutzungsbasierte Cloud-Tarife schnell nach oben, und die Daten liegen außerhalb Ihrer Kontrolle. Self-hosted bleibt die Rechnung planbar und die Telemetrie in der EU auf Ihrer Infrastruktur. Diese Abwägung vertiefen wir in IoT self-hosted vs. Cloud.

Grafana-IoT-Stack souverän betreiben mit WZ-IT

Grafana, InfluxDB, Telegraf und MQTT bilden zusammen einen offenen, herstellerneutralen Monitoring-Stack - die ideale Basis für souveränes IoT ohne Cloud-Lock-in und ohne Per-Device-Lizenz. Wir bei WZ-IT planen die Edition- und Versionswahl (InfluxDB 3 vs. 2.x, Retention, Sizing), setzen den Stack containerisiert auf Ihrer Infrastruktur in der EU auf (Proxmox, Hetzner oder On-Premises), härten ihn mit TLS, getrennten Tokens und Backups und bauen die Dashboards und Alarmketten für Ihren konkreten Anwendungsfall. Sie behalten Daten, Token und Betrieb in der Hand. Mehr dazu auf unserer Grafana-Expertise und im IoT-Hub.

Grafana-IoT-Dashboard mit InfluxDB self-hosted aufsetzen? Zur Grafana-IoT-Plattform - Erstgespräch buchen

Weiterführende Guides

Lieber betreiben lassen?

Sie möchten IoT nicht selbst betreiben? WZ-IT übernimmt Einrichtung, Betrieb und Wartung - datenschutzorientiert aus Deutschland.

Anfrage

IoT-Plattform und Geräteanbindung einordnen

Wir verbinden Geräte, Gateways, Netze, Datenverarbeitung und Anwendungen zu einer betreibbaren IoT- oder OT-Plattform.

  • Direkt mit Timo und Robin - kein Vertrieb, kein Sales-Pitch
  • Fachliche Einschätzung Ihrer Situation
  • Konkrete nächste Schritte für Infrastruktur, Software oder KI

Das Gespräch ist unverbindlich und kostenlos.

Timo und Robin habe ich als engagierte und professionelle Gesprächspartner kennengelernt, die für einen Kunden so einiges möglich machen, das erst mal unmöglich scheint. Ich fühlte mich sehr gut beraten. Die angebotenen Leistungen haben mich sehr überzeugt.
Andrea PawlowskiCommunications Manager, Golem.de, Deutschland
Timo und Robin, Gründer von WZ-IT

IoT-Plattform und Geräteanbindung einordnen

Timo und Robin habe ich als engagierte und professionelle Gesprächspartner kennengelernt, die für einen Kunden so einiges möglich machen, das erst mal unmöglich scheint. Ich fühlte mich sehr gut beraten. Die angebotenen Leistungen haben mich sehr überzeugt.
Andrea PawlowskiCommunications Manager, Golem.de, Deutschland

Häufig gestellte Fragen

Antworten auf die wichtigsten Fragen

Unternehmen weltweit vertrauen WZ-IT

  • Stadtwerke Brühl
  • DGHO e.V.
  • solarwerkstatt berlin
  • Krüger Dirndl
  • ABCO Water Systems
  • Golem.de
  • EVADXB
  • nextGYM
  • AInergy
  • ml&s
  • Odiseo Solutions
  • Annota
  • ARGE
  • SweetConnect GmbH
  • Aphy AG
  • CORGOS
  • Rekorder
  • SolidProof
  • Yonju
  • Keymate
  • Paritel
  • Mr. Clipart
  • Millenium
  • Negosh
  • Führerscheinmacher
  • BTI
  • Deutsche Gesellschaft für Datenschutz
Kundenstimmen ansehen