Es ist so weit, `influxDB V3` ist raus

Moin,

mir ist mal wieder etwas unter die Augen gekommen, hat nichts mit Home Assistant zu tun und sollte für 99,9 % aller hier mitlesenden uninteressant sein, aber ich finde es trotzdem für wissenswert :slight_smile:

Es hat sich wohl einiges unter der Haube und auch in der allgemeinen Bedienung geändert, sodass eine gewisse Umgewöhnung ansteht.

Ich werde das mal auf mich wirken lassen, ob es sich lohnt jetzt schon umzusteigen.

Auf der Grafana Con 2025 wurde auch darüber berichtet,

Viel Spaß beim Lesen.

VG
Bernd

P.S.: Es gibt auch eine neue Web-UI,

3 „Gefällt mir“

Wie es sich in Home Assistant integrieren lässt, muss man mal schauen.

Für mich trotzdem ein Segen, dass die nun endlich weitgehend originale SQL Syntax verwenden.

Mit dieser komischen Flux Sprache bin ich nie warm geworden.

Auch soll es jetzt endlich mal möglich sein, Daten zu löschen oder zu importieren.

Moin,

meinst Du es in HAOS als Add-on?
Da muss erst einmal jemand ein Docker Container bauen vielleicht Frenk :man_shrugging:

Oder dass man in der HA configuration.yaml die V3 als Ziel definieren kann, dazu muss man schauen, ob sich das Anmeldeverfahren zu V2 geändert hat, wenn nicht, dann besteht die große Chance, dass sich HA verbinden kann.

Beim groben Überfliegen der Dokumentation habe ich erst einmal keine Änderung zur V2 gesehen.

VG
Bernd

Moin,

ich antworte mir mal selbst :slight_smile:

So influxDB V3 und influxdb-exporter laufen als Docker, zum Testen, als Daten schibe ich aber erst einmal nur Daten von meinem PC per telegraf in die Datenbank.

networks:
  influxdb3:
    name: influxdb3
services:
  db:
    image: influxdb:3-core
    hostname: influxdb3
    ports:
      - 8181:8181
    environment:
      INFLUXDB3_NODE_IDENTIFIER_PREFIX: 00
      INFLUXDB3_OBJECT_STORE: memory
    networks:
      - influxdb3
    volumes:
      - /mnt/docker/appdata/influx/influxDB/data:/var/lib/influxdb2
      - /mnt/docker/appdata/influx/influxDB/config:/etc/influxdb2
  explorer:
    image: influxdata/influxdb3-ui:latest
    hostname: influxdb3-explorer
    ports:
      - 8888:80
      - 8889:8888
    networks:
      - influxdb3

Dann muss man noch einen admin token` erstellen

influxdb3@influxdb3:/$ influxdb3 create token --admin

Den Token exportieren

export INFLUXDB3_AUTH_TOKEN="hier den token, ohne "" kopieren"

Datenbank anlegen

influxdb3 create database telegraf

Dann im influxDb-exporter die Datenbank einbinden



Export an Grafana


Es gibt jetzt

  • delete,
  • create,
  • insert,
  • select als SQL

somit gehe ich davon aus, dass ein Löschen einfach möglich sein sollte.

Migration von V2 → V3

noch nicht recherchiert

Nutzen in Home Assistant

ja ist mit den gleichen Einstellungen wie für influxDB V2 möglich, man braucht aber wohl keine organisation mehr, schaden tut es aber auch nicht.

VG
Bernd

1 „Gefällt mir“

Moin,

ich antworte mir wieder mal selbst, also einige Dinge haben sich doch gravierend geändert, da muss ich jetzt doch erst einmal mehr lesen, wie das alles mit den neuen Environments alles funktioniert, um z. B. persistenten Speicher zu bekommen,
In meinem Docker Compose File ist es aktuell so, dass die Daten im Memory gehalten werden, startet man den Container, sind die weg,

INFLUXDB3_OBJECT_STORE: memory

Das kann man ändern, in

INFLUXDB3_OBJECT_STORE: file

Dann muss man aber auch noch den Objekt-Store, definieren, als ein echtes Volume.

Aber das bekomme ich dann hoffentlich auch mal zeitnah heraus, noch bin ich nicht gezwungen umzustellen, da ich auch noch nicht weiß, wie man migriert.
Habe da doch vielleicht einen Weg gefunden, muss ich mir dann mal anschauen

VG
Bernd

1 „Gefällt mir“

Danke für die Info.

Ich muss mal schauen, ob ich nächste Woche etwas Zeit finde, mal zu installieren und zu testen. Wahrscheinlich wird es aber erst September werden, bis ich dazu komme.

Moin,

ich habe heute mal etwas herumgespielt und mir einen Stack gebaut, der jetzt erst einmal so funktioniert, es sind noch Kleinigkeiten, wie z. B. alles über Environment zu steuern, anstatt alles im compose.yml hineinzuschreiben, auch gibt es noch ein Schönheitsfehler, der influxDB Container wird als unhealthy angezeigt, daher können auch die zwei anderen Container nicht gebaut werden, daher ist dieser Test kommentiert.
Die Dokumentation hat mir die KI geschrieben, da bin ich ja faul :slight_smile:

Nachtrag
das Problem mit dem Health Check habe ich gelöst :slight_smile:


InfluxDB v3 Core Monitoring Stack – Dokumentation

Diese Dokumentation beschreibt ein lokales Monitoring-Setup unter Verwendung von InfluxDB v3 Core als Zeitreihendatenbank, InfluxDB Data Explorer für Datenexploration und Grafana für Visualisierungen. Daten können von einem externen Telegraf-Agenten (z.B. auf Ihrem Host-PC) an InfluxDB gesendet werden.

1. Überblick der Komponenten

  • InfluxDB v3 Core (influxdb:3-core): Die Time-Series-Datenbank, die für die Speicherung aller Metriken zuständig ist. Lauscht auf Port 8181 (intern und extern).
  • InfluxDB Data Explorer (influxdata/influxdb3-ui:1.0.0): Eine Web-Oberfläche zur direkten Interaktion mit InfluxDB v3, zum Abfragen und Anzeigen von Daten. Erreichbar über Port 8888 auf Ihrem Host.
  • Grafana (grafana/grafana:latest): Eine leistungsstarke Plattform zum Erstellen von Dashboards und Visualisierungen. Erreichbar über Port 3000 auf Ihrem Host.
  • Telegraf (extern): Ein Metrik-Collector, der auf Ihrem Host-System läuft und Daten an die InfluxDB-Instanz im Docker-Stack sendet.

2. Verzeichnisstruktur auf dem Host

Stellen Sie sicher, dass die folgenden Verzeichnisse auf Ihrem Host-System existieren, bevor Sie den Stack starten. Diese werden für die persistente Speicherung von Daten und Konfigurationen verwendet, z. B.:

/mnt/docker/appdata/my_tig/
├── influxdb3_data/      # Persistente Daten für InfluxDB v3 Core
├── influxdb3_plugins/   # Plugins für InfluxDB v3 Core (optional)
├── grafana_data/        # Persistente Daten für Grafana (Dashboards, Benutzer etc.)
└── grafana_provisioning/
    └── datasources/     # Konfigurationsdateien für Grafana Datenquellen

Erstellen Sie diese Verzeichnisse bei Bedarf:
mkdir -p /mnt/docker/appdata/my_tig/influxdb3_data /mnt/docker/appdata/my_tig/influxdb3_plugins /mnt/docker/appdata/my_tig/grafana_data /mnt/docker/appdata/my_tig/grafana_provisioning/datasources

3. InfluxDB v3 Core Initialisierung

Nach dem allerersten Start der InfluxDB v3 Core Instanz müssen Sie manuell einen Operator-Token erstellen. Dieser Token ist entscheidend für die Authentifizierung aller Clients.

  1. Starte NUR den InfluxDB-Container:
    docker compose up -d influxdb
  2. Gehe in den Container:
    docker exec -it influxdb-v3-core bash
  3. Erstelle den Operator-Token:
    influxdb3 create token --admin
    Wichtig: Der hier ausgegebene Token ist Ihr Operator-Token. Kopieren Sie ihn sofort und sorgfältig! Sie benötigen ihn für alle weiteren Schritte.
  4. Verlasse den Container:
    exit

4. Konfiguration der Dienste

Alle Dienste benötigen den von Ihnen erstellten Operator-Token zur Authentifizierung bei InfluxDB.

4.1. docker-compose.yml

Aktualisieren Sie die Platzhalter in der docker-compose.yml mit Ihrem generierten Operator-Token. Die Tokens müssen in den environment-Sektionen der jeweiligen Dienste eingefügt werden.

4.2. Grafana Datenquelle

4.3. Telegraf Konfiguration (telegraf.conf)

Diese Datei wird vom externen Telegraf-Agenten auf Ihrem Host verwendet, um Daten an InfluxDB zu senden.

# Beispiel: Input-Plugin für Systemmetriken
[[inputs.cpu]]
  percpu = true
  totalcpu = true
  fielddrop = ["time_guest", "time_guest_nice", "time_steal"]

[[inputs.mem]]

[[inputs.disk]]
  ignore_fs = ["tmpfs", "devtmpfs", "devfs"]

[[inputs.diskio]]

[[inputs.net]]

# Output-Plugin für InfluxDB v2/v3
[[outputs.influxdb_v2]]
  urls = ["http://localhost:8181"] # Wenn Telegraf auf dem Host läuft, ist es localhost
  token = "tokentokentokentokentokentokentokentokentokentokentokentoken" # Ihr Operator-Token
  organization = "my_org" # Ihre Organisation kann man mit Dummy ausfüllen z. B. "telegraf"
  bucket = "my_bucket" # Ihr Bucket, ich nehme der Einfachheithalber "telegraf"

5. Starten des Stacks

Nachdem Sie alle Konfigurationen vorgenommen und die Platzhalter durch Ihre tatsächlichen Werte ersetzt haben:

  1. Bereinigen Sie alte Container und Daten (optional, aber empfohlen bei Problemen):
    docker compose down -v
    sudo rm -rf /mnt/docker/appdata/my_tig/influxdb3_data/* (falls Sie einen ganz sauberen Start wünschen)
  2. Starten Sie den gesamten Stack:
    docker compose up -d

6. Zugriffs-URLs

  • InfluxDB v3 Core UI: http://ip.vom.docker:8181
  • InfluxDB Data Explorer: http://ip.vom.docker:8888
  • Grafana Dashboard: http://ip.vom.docker:3000 (Standard-Login: admin/admin), bitte gleich ändern!

Docker Compose File (docker-compose.yml)

version: '3.8'

services:
  # InfluxDB v3 Core (Single Node)
  # Datenbank für Zeitreihendaten
  influxdb:
    image: influxdb:3-core
    container_name: influxdb-v3-core
    ports:
      - "8181:8181" # Exponiert den InfluxDB HTTP/API-Port
    command:
      # Startbefehle für InfluxDB v3 Core
      - influxdb3
      - serve
      - --node-id=node0 # Eindeutige ID für diesen einzelnen Knoten
      - --object-store=file # Konfiguriert die Speicherung im lokalen Dateisystem
      - --data-dir=/var/lib/influxdb3/data # Pfad für die Daten im Container
      - --plugin-dir=/var/lib/influxdb3/plugins # Pfad für Plugins im Container
    volumes:
      # Bind-Mounts für die persistente Speicherung auf dem Host-Verzeichnis
      - type: bind
        source: /mnt/docker/appdata/my_tig/influxdb3_data
        target: /var/lib/influxdb3/data
      - type: bind
        source: /mnt/docker/appdata/my_tig/influxdb3_plugins
        target: /var/lib/influxdb3/plugins
    environment:
      # Dein Operator Token: UNBEDINGT MIT DEINEM ECHTEN TOKEN ERSETZEN!
      - INFLUXDB3_AUTH_TOKEN=tokentokentokentokentokentokentokentokentokentokentokentokentokentokentokentokentokentokentokentoken
    healthcheck:
      # Healthcheck sendet den Token im Authorization Header mit, da /health Authentifizierung benötigt, dazu aber nicht die Variable nutzen, sonder nden Token direkt eintragen!
      test: ["CMD-SHELL", "curl -f -H 'Authorization: Bearer tokentokentokentokentokentokentokentokentokentokentokentokentokentokentoken' http://localhost:8181/health || exit 1"]
      interval: 10s
      timeout: 5s
      retries: 5
      start_period: 90s # Lange Startphase, um InfluxDB Zeit zum Initialisieren zu geben
    networks:
      - monitoring_net

  # InfluxDB Data Explorer
  # Web-UI zur Interaktion mit InfluxDB v3 Daten
  influxdb-explorer:
    image: influxdata/influxdb3-ui:1.0.0 # Offizielles Image für InfluxDB 3 UI
    container_name: influxdb-data-explorer
    ports:
      - "8888:80" # Host 8888 auf Container 80 mappen, wie in der Doku
    command: ["--mode=admin"] # Startet den Explorer im Admin-Modus
    environment:
      # Konfiguration der Verbindung zum InfluxDB v3 Core
      - INFLUXDB_URL=http://influxdb:8181 # URL des InfluxDB-Dienstes im Docker-Netzwerk
      - INFLUXDB_VERSION=3 # Informiert den Explorer über die InfluxDB-Version
      # Token für den Explorer: UNBEDINGT MIT DEINEM ECHTEN TOKEN ERSETZEN!
      - INFLUXDB_TOKEN=tokentokentokentokentokentokentokentokentokentokentokentokentokentokentokentokentokentokentokentoken
    depends_on:
      # Abhängigkeit vom InfluxDB-Container, wartet nur bis dieser gestartet ist
      # (Service Healthy könnte zu Problemen führen, wenn Healthcheck instabil ist)
      influxdb:
        condition: service_started
    networks:
      - monitoring_net

  # Grafana
  # Dashboard- und Visualisierungsplattform
  grafana:
    image: grafana/grafana:latest # Offizielles Grafana-Image
    container_name: grafana
    ports:
      - "3033:3000" # Exponiert den Grafana Web-UI-Port (Host 3033 auf Container 3000)
    volumes:
      # Bind-Mount für die persistenten Grafana-Daten
      - type: bind
        source: /mnt/docker/appdata/my_tig/grafana_data
        target: /var/lib/grafana
      # Bind-Mount für das Grafana Provisioning (Datenquellen, Dashboards etc.)
      - type: bind
        source: /mnt/docker/appdata/my_tig/grafana_provisioning
        target: /etc/grafana/provisioning
    environment:
      # Standard-Admin-Zugangsdaten (BITTE IN PRODUKTION ÄNDERN!)
      - GF_SECURITY_ADMIN_USER=admin
      - GF_SECURITY_ADMIN_PASSWORD=admin
      - GF_USERS_ALLOW_SIGN_UP=false # Deaktiviert die Benutzerregistrierung
    depends_on:
      # Abhängigkeit vom InfluxDB-Container, wartet nur bis dieser gestartet ist
      influxdb:
        condition: service_started
    networks:
      - monitoring_net

# Docker Netzwerke für die interne Kommunikation der Dienste
networks:
  monitoring_net:
    driver: bridge # Standard-Bridge-Netzwerk
2 „Gefällt mir“

Hallo,

ich habe influxdb3 Enterprice und influxdb3Explorer beides in Docker installiert. Die docker-compose sieht ist inhaltlich fast so wie die von dp20eic. Was mir nicht gelingen will sind die environment vo influxdb3explorer. Ich muß bei einem Neustart des containers die Daten immer wieder neu im Explorer eingeben.

Habt ihr eine Lösung?

Poste am besten deine Datei. Wenn Daten nach dem Reboot weg sind schreibst du die vermutlich nicht in ein Volume oder bind mount.

Hallo,

ich hab die Compos nach den Anleitungen von influx zusammengesetzt. ich darf noch keine Anhänge hochladen, daher hier der Inhalt der Compose beschränkt auf den Exploreranteil :

influxexplorer:

image: influxdata/influxdb3-ui:1.1.0

container_name: influxexplorer

restart: always

ports:

  - 8888:8888

volumes:

  - /Users/willi/container/influxexplorer/config:/app-root/config:ro

  - /Users/willi/container/influxexplorer/db:/db:rw 

  - /Users/willi/container/influxexplorer/ssl:/etc/nginx/ssl:ro

command:

  - --mode=admin

environment:

  - env SESSION_SECRET_KEY=21e59d40d78c184bea932364a575b9767e58514cf1557badf71c0c0a00f12cb3

  - INFLUXDB_URL=http://191.168.100.3:8181

  - INFLUXDB_VERSION=3

  - INFLUXDB_SERVER_NAME=Homewillimac

  - INFLUXDB_TOKEN=apiv3_oDEkjIdk21etaRRVg6OPqQ27CcBAucIIINGGs05NOkW8oVfQ2o6HH6xFn_WGaOH035ibRtrDA-geTehbhtDfcw

Hast du wirklich eine öffentliche IP in Sao Paulo? Oder sollte es 192.* sein?

Ist ein Schreibfehler

danke für den Hinweis

Moin,

da muss man auch nichts hochladen, da reicht es aus, wenn man die Code-Tags nutzt um seinen Code zu zeigen :wink:

Da ist bei Deinem Code etwas schiefgegangen :wink:

Du hast wirklich einen Ordner auf der root ebene angelegt, der /Users heißt? Das ist eher ungewöhnlich, aber gut, muss jeder selbst entscheiden.
Ich denke das es eher mit den falschen Zuweisungen zu tun hat, Du hast config als ro = read only, das heißt Du wirst nichts abspeichern können, zumal wenn man das angibt, gehe ich davon aus, dass die Konfiguration auch nicht als ENV bereitgestellt wird, sondern als Datei!
Siehe die Dokumentation, unter Pre-configure InfluxDB connection settings

Also mein Docker Compose File funktioniert in Portainer tadellos.

VG
Bernd

War das die Lösung oder besteht das Problem weiterhin? Wenn es dennoch nicht geht lass uns mal wissen welche (Config)-Dateien du wohin gelegt hast min Inhalt, und was deine Erwartungshaltung ist, was wohin abgespeichert oder zurück gelesen werden soll.

hallo,

das Problem besteht weiterhin. Ich gehe davon aus das es sich hierbei nicht um ein ursächliches Docker-Problem handelt. Meine Docker App laufen einwandfrei, die Docker Volumen auf dem Host werden abgeglichen und können, ich arbeite auf 2 macs M3 und M4, im Finder terminlich nachverfolgt werden.

Influxdb3 Enterprice 3.2 läuft einwandfrei. Influxdb3explorer 1.1.0 läuft eigentlich auch.

Leider kann ich die Konfigurationsdaten nicht über einen neu Start des Systems retten obwohl die Dateien hierzu im Dokervolumen vorhanden sind.

Die Dokumentation Influxexlorer habe ich berücksichtigt. config.json ist vorhanden. sqlite.db wurde vom System auch angelegt und terminlich bei einer Konfiguration terminlich auch abgeglichen.

Kennt einer das Problem und hat eine Lösung?

Moin,

na ja, mein Docker Compose läuft bei mir einwandfrei, ich kann auch den gesamten Stack neu bauen, ohne das mir die Informationen verloren gehen.

Kannst Du noch einmal die gesamte Compose Datei hier in Code-Tags </> zeigen?

VG
Bernd

Hallo Bernd, hier ist die Vollständige Compose:

services:

  influxdb3:

image: influxdb:3-enterprise

container_name: influxdb3

restart: always

ports:

      - 8181:8181 

command:

      - influxdb3

      - serve

      - --node-id=node0

      - --cluster-id=cluster0

      - --object-store=file

      - --data-dir=/var/lib/influxdb3/data                                 

      - --plugin-dir=/var/lib/influxdb3/plugins                                        

environment:

      - DOCKER_INFLUXDB_INIT_USERNAME=Willi

      - DOCKER_INFLUXDB_INIT_PASSWORD=Oskar005

      - DOCKER_INFLUXDB_INIT_BUCKET=Test

      - INFLUXDB3_ENTERPRISE_LICENSE_EMAIL= xxxxxxxxxxxxxxxxxxx

      - INFLUXDB3_AUTH_TOKEN=apiv3_RBhc3EqBP2sm_hbjcpkiwGzns6TmlXlaOeffa9L_2_8Nfmq9p7ZrXH6H6kO7x-GvtChwSjAZX9DSQuqbk84HVw


volumes:

      - ./influxdb3_data:/var/lib/influxdb3/data

      - ./influxdb3_plugins:/var/lib/influxdb3/plugins

##########################################################################################################

influxexplorer:

image: influxdata/influxdb3-ui:1.1.0


container_name: influxexplorer

restart: always

ports:

      - 8888:80

volumes:

      - ./influxexplorer/config:/app-root/config

      - ./influxexplorer/db:/db:rw 

      - ./influxexplorer/ssl:/etc/nginx/ssl

command:

      - --mode=admin

Nachtrag:

Hallo Bernd,

hier meine Compose

compose Kopie.yaml (1,5 KB)

:crayon:by HarryP:

. Zusammenführung Doppelpost (bei Änderungen oder hinzufügen von Inhalten bitte die „Bearbeitungsfunktion“ anstatt „Antworten“ zu nutzen)
. Code-/Logzeilen formatiert (bitte immer in </> einbinden)
. s.a.: (Neues Update & Features - Hier in der Community 🫶)

Moin,

ok, so auf die schnelle sehe ich da kein Problem, wie sieht denn die config.jason aus?

VG
Bernd

Hier die config.json:

{
  "DEFAULT_INFLUX_SERVER": "192.168.100.3:8181",
  "DEFAULT_INFLUX_DATABASE": "influxdbv3",
  "DEFAULT_API_TOKEN": "apiv3_RBhc3EqBP2sm_hbjcpkiwGzns6TmlXlaOeffa9L_2_8Nfmq9p7ZrXH6H6kO7x-GvtChwSjAZX9DSQuqbk84HVw",
  "DEFAULT_SERVER_NAME": "homewillimac"
}

Moin,

wenn Du auf der influxDB3enterprise Konsole bist und dort dann den Befehl influxdb3 show tokens absetzt, was kommt da bei Dir, bei mir sieht das so aus

influxdb3@33b3a6b36d56:/$ influxdb3 show tokens
+----------+--------+-----------+-------------------------+-------------+---------------------+------------+---------------------+--------+-------------+
| token_id | name   | hash      | created_at              | description | created_by_token_id | updated_at | updated_by_token_id | expiry | permissions |
+----------+--------+-----------+-------------------------+-------------+---------------------+------------+---------------------+--------+-------------+
| 0        | _admin | 5e33a1e68 | 2025-07-15T13:04:24.035 |             |                     |            |                     |        | *:*:*       |
+----------+--------+-----------+-------------------------+-------------+---------------------+------------+---------------------+--------+-------------+
influxdb3@33b3a6b36d56:/$

Hast Du schon mal versucht, einen Token mittels influxdb3explorer zu erstellen? Ist Dein Token wirklich ein Admin Token?

VG
Bernd