NEWS
Umzug: Influx 1.8 und 2.7
-
Hallo mitteinander
Ich ziehe meinen iobroker vollständig auf eine andere Maschine und treffe dazu nun die Vorbereitungen.
Das ganze zieht von einer nativen Debian 11 Installation (iobroker, Inlux1.8, Influx 2.7, Grafana, Nut ect) in einen unraid Server und dort in die entsprechenden Docker.Der "neue" Server läuft bereits und nimmt derzeit auch die Influx 2 Daten entgegen. Dies aber erst seit ein paar Tagen.
Nun habe ich bereits seit ewigen Zeiten eine Influx1 auf der Debian Maschine laufen und seit ein paar Monaten eine Influx 2.Derzeit sieht es so aus:
3x eine Influx Instanz auf iobroker die die locale (0) eine Backup DB (1) und mit Instanz (2) die neue InfluxDB 2 befeuert.Ich möchte keine Daten verlieren, die Influx 1 sammelt bereits seit über 4 Jahren Daten
Wie bekomme ich nun die Daten aller drei DB Server zusammengelegt?
Wenn das erledigt ist, fliegen 0 und 1 als Datensammler raus, der unraid Server wird mehrfach täglich gesichert.
Hat sich schon mal jemand mit der InfluxDB 2 replizierung auseinandergesetzt?
danke für Tipps und Ideen dazu
-
@lucifor1976 sagte in Umzug: Influx 1.8 und 2.7:
danke für Tipps und Ideen dazu
Moin,
hast Du schon mal hier im Forum gesucht, da gibt es zig Thread zu
Z.B.: https://forum.iobroker.net/topic/66889/wechsel-von-influx-1-auf-2VG
BerndP.S.: Original Dokumentation von
influx
zur Migration von einer zur andern https://docs.influxdata.com/influxdb/v2.7/migrate-data/migrate-oss/#Copyright
P.P.S.: Upgrade from InfluxDB 1.x to 2.7 -> https://docs.influxdata.com/influxdb/v2.7/upgrade/v1-to-v2/ -
@lucifor1976 sagte in Umzug: Influx 1.8 und 2.7:
Wie bekomme ich nun die Daten aller drei DB Server zusammengelegt?
In deinem Szenario würde ich folgendermaßen vorgehen, weil die Standardverfahren bei dir kompliziert werden dürften:
- Export der Quelldaten der InfluxDB 1.x (ggf. Pfade/DB-Namen anpassen):
influx_inspect export -datadir /var/lib/influxdb/data -waldir /var/lib/influxdb/wal -database iobroker -compress -lponly -out ~/iobroker1_export.lp
- Export der Quelldaten der InfluxDB 2.x (Bucket-ID eintragen und ggf. Pfade anpassen:
influxd inspect export-lp --bucket-id <id> --compress --engine-path ~/.influxdbv2/engine --output-path ~/iobroker2_export.lp
Jetzt hast du alle deine Quelldaten im einheitlichen komprimierten Line Protocol und kannst sie
- in zwei Schritten importieren (vorher das Bucket manuell in der Ziel-V2 anlegen!):
influx write --bucket iobroker --file iobroker1_export.lp --compression gzip influx write --bucket iobroker --file iobroker2_export.lp --compression gzip
Edit: Typo im V2 Export
-
Danke für Deine Hilfe. Leider bin ich kein Stück weiter gekommen
V1 (Debian nativ installiert, es ist eine Version 1.6.x)
influx_inspect gibt es nicht auf der V1 Maschine. In der Dokumentation finde ich nichts das nach zu installieren.
Ein "influx version" ergibt ein nichts sagendes "Influx CLI dev (git: none) build_date: 2023-04-28T14:24:14Z"
apt sagt es gibt kein neueres Paket für Influx als das installierte.fängt ja schon gut an
V2 (Docker auf einer Diskstation)
influxd inspect .. wird ausgeführt dauert 200ms und im Data Verzeichnis befindet sich kein erwartetes iobroker2_export.lpGeistes Schock:
Hat sich eh erledigt. ich musste gerade feststellen das Influx V1 eh alle Daten vor 08.08.22 gelöscht hat.
Als ich damals mit iobroker angefangen hab, war mir nicht bewusst das Influx die Daten eigenständig nach einer gewissen Zeit löscht. Ich kannte mich etwas mit SQL aus, da gibt es sowas nicht. Mit Umstieg auf V2 hatte ich das gelesen und die Datenbanken auf Forever gestellt. So auch auf dem neuen Datenbankserver.
Auf das letzte Jahr kann ich dann auch verzichten und ziehe jetzt alles auf den neuen Server um und gut, also nur das logging der Daten..Weiss ich jetzt nicht ob das so sinnvoll ist als Standard automatisches Löschen zu setzen.
So long..
-
@lucifor1976 sagte in Umzug: Influx 1.8 und 2.7:
V1 (Debian nativ installiert, es ist eine Version 1.6.x)
influx_inspect gibt es nicht auf der V1 Maschine. In der Dokumentation finde ich nichts das nach zu installieren.Ja gut, das hätte mit der 1.6er Version sowieso nicht funktioniert, die Option mit "Line Protocol" zu exportieren gibt es erst seit einer späten 1.8.x Version. (Dann passt aber dein Betreff nicht :-))
V2 (Docker auf einer Diskstation)
influxd inspect .. wird ausgeführt dauert 200ms und im Data Verzeichnis befindet sich kein erwartetes iobroker2_export.lpDas funktioniert bei mir super. Zeig mal die Ein-/Ausgaben.
-
So schaut das ganze aus (V2):
Mann kann auf der Diskstation das Terminal Fenster nicht größer ziehen, das war gerade mal voll nicht hilfreich -
@lucifor1976 sagte in Umzug: Influx 1.8 und 2.7:
So schaut das ganze aus (V2):
Du musst den Pfad zum Engine-Verzeichnis sehr wahrscheinlich anpassen. Das müsste /var/lib/influxdb2/engine oder so sein, hängt von der Installation ab.
Und die Export-Datei liegt bei diesem Aufruf im root-Home.
-
Passt, export läuft und ins Daten Verzeichnis.
Hab ich wenigstens noch ein paar Monate Daten. -
@lucifor1976 sagte in Umzug: Influx 1.8 und 2.7:
Weiss ich jetzt nicht ob das so sinnvoll ist als Standard automatisches Löschen zu setzen.
Moin,
das hängt von den Daten ab, die Du speicherst, da kann ganz schnell einiges zusammen kommen. Und wenn Du
forever
eingestellt hast, dann kommt der Tag, an dem Du keinen Platz mehr hast, oder Deine Abfragen, wenn sie nicht gut geschrieben sind, werden immer langsamer, da sie einen Berg an Daten durchsuchen müssen.Eigentlich, es gibt da zwei Varianten
- Du installierst Dir mehrere
ioBroker influxDB
Adapter und richtest dort unterschiedliche Aufbewahrungszeiten ein - Du hast nur ein Kurzzeit Bucket ~30 Tage wo alles aus dem
ioBroker
hineinläuft und Du richtest Dir auf derinfluxDB
Tasks ein, die die daten in unterschiedliche Buckets mit unterschiedlichen Aufbewahrungszeiten schreibt, such mal nachdownsampling
VG
Bernd - Du installierst Dir mehrere