NEWS
InfluxDB restore in Docker auf einer Synology 923+
-
Vorhaben ..
Meine InfluxDB2-Installation soll von meine Raspberry Pi 4 auf eine Synology 923+ in eine Docker-Umgebung umziehen.
Vorarbeiten ..
Ich habe mittels BackItUp eine Image erstellt. Dieses habe ich entpackt (es ergaben sich 51 *.gz Dateien). Diese Dateien habe ich auf meine Synology NAS nach /volume2/influxdb/backups kopiert. Dieses Verzeichnis habe ich zuvor beim Erstellen in InfluxDB2/Docker nach /backups gemappt. Der Zugriff aus dem Docker-Container via SSH auf das NAS-Verzeichnis funktioniert.
Vorgehen ..
Starte ich das Restore mittels ..
admin@NAS:/$ sudo docker exec -it influxdb2 influx restore --full -t <hier steht mein Admin-Token> /backups Password: 2025/07/22 09:55:32 INFO: Restoring KV snapshot Error: failed to restore KV snapshot: 401 Unauthorized: unauthorized access
.. funktioniert das Ganze leider nicht.
Was mache ich bloß falsch?
-
@legro sagte in InfluxDB restore in Docker auf einer Synology 923+:
<hier steht mein Admin-Token>
Abgesehen davon, dass ich das Konstrukt mit dem Mapping per SSH noch nicht verstanden habe: Welchen Admin-Token verwendest du? Den des alten oder des neuen Servers?
-
Mittlerweile habe ich beide Admin-Token ausprobiert. In der Tat, es sollte der Token der Installation im Docker sein.
Dafür habe ich jetzt eine anderes Problem: Ich kann mich nicht mehr über das Web-Interface von InfluxDB anmelden.
Letzteres Problem kenne ich leider nur allzu gut. So musste ich von Zeit zu Zeit immer wieder einmal einen neuen Benutzer/Kennwort anlegen.
Diesmal ist der Grund: Nach dem Restore gilt das PW aus der InfluxDB-Installation, aus der das Backup stammt. Was für ein Durcheinander.
-
@legro sagte in InfluxDB restore in Docker auf einer Synology 923+:
Nach dem Restore gilt das PW aus der InfluxDB-Installation, aus der das Backup stammt. Was für ein Durcheinander.
Genau dazu ist das Flag "--full" ja gedacht, dass es eine komplette Wiederherstellung der Datenbank mit allen Daten, Usern, Berechtigungen und Token macht. Verstehe nicht, was daran "durcheinander" sein soll. Wenn du das nicht willst, lass das "--full"-Flag weg und restore die Buckets einzeln.
-
Bevor ich dieses Abenteuer anging, habe ich alles Mögliche gelesen. Die Quellen waren widersprüchlich. Schließlich habe ich mich für obiges Vorgehen entschieden und dabei dieses Resultat erhalten.
Leider war mir der Parameter --full in seiner Wirkung nicht klar, daher meine Verwirrung. Danke für deine Erläuterung.
-
Nachdem ich diese Anleitung gefunden habe, habe ich alles nochmals neu gemacht. Leider funktionierte das Ganze nicht auf Anhieb. Zwei Punkte bereiteten mir Sorgen ..
- Im Abschnitt InfluxDB2 Restore fehlt wohl der Hinweis, dass man in der Neuinstallation von InfluxDB im Container Manager der Synology unbedingt die alte Organisation anlegen muss. Zwar funktioniert das Restore, aber es sind keine Buckets aus dem wiederhergestellten Backup in der GUI von InfluxDB zu sehen. Ich legte also nach dem Restore nachträglich eine Organisation mit dem alten Namen (beim mir: db_iobroker) an, wie er auch beim Erstellen des Backups verwendet wurde, und schon erschienen die Measurments.
- Im Abschnitt Externe Datenbanken im Docker Container sichern wird ausgeführt, dass eine Environment Variable IOB_BACKITP_EXTDB angelegt werden müsse. Da dies nur beim Einrichten des Conainters für InfluxDB möglich ist, durfte ich also alles wieder löschen und den Container neu aufsetzen.
Ob das nun alles funktioniert, wird sich in den nächsten Stunden zeigen. Ich werde berichten.
-
@legro sagte in InfluxDB restore in Docker auf einer Synology 923+:
Im Abschnitt InfluxDB2 Restore fehlt wohl der Hinweis, dass man in der Neuinstallation von InfluxDB im Container Manager der Synology unbedingt die alte Organisation anlegen muss.
Der Hinweis fehlt nicht, weil es nicht notwendig ist. Falls die Organisation vorher nicht existierte, wird sie beim Restore via Backitup automatisch angelegt.
Im Abschnitt Externe Datenbanken im Docker Container sichern wird ausgeführt, dass eine Environment Variable IOB_BACKITP_EXTDB angelegt werden müsse. Da dies nur beim Einrichten des Conainters für InfluxDB möglich ist, durfte ich also alles wieder löschen und den Container neu aufsetzen.
Wenn du "alles" wieder löschen musstest, machst du was verkehrt. Die Daten der InfluxDB müssen beim Neuerstellen des Containers unberührt bleiben.
-
@marc-berg sagte in InfluxDB restore in Docker auf einer Synology 923+:
Der Hinweis fehlt nicht, weil es nicht notwendig ist. Falls die Organisation vorher nicht existierte, wird sie beim Restore via Backitup automatisch angelegt.
Ich habe das Ganz gleich zweimal probiert, das Ergebnis war jedesmal das oben geschilderte.
Der zweite Versuch war allerdings ungewollt, ich hatte mich beim alten Namen der Organisation vertippt. Sei‘s d‘rum. Morgen geht‘s auf ein Neues.
Wenn du "alles" wieder löschen musstest, machst du was verkehrt. Die Daten der InfluxDB müssen beim Neuerstellen des Containers unberührt bleiben.
Ich lösche in diesen Fällen immer alles um auszuschließen, dass irgendwelche Überreste mir etwas verderben können. Nur so kann ich sauber protokollieren und alles auf Reproduzierbarkeit testen. So sollte ich die Fehler dingfest machen, der hoffentlich bei mir liegt, denn dann kann ich sie vermeiden.
-
Nun habe ich das Ganze zigmal probiert - allerdings mit viel wenig Erfolg.
Hier das traurige Ergebnis, in dem nur die Ergebnisse von heute vorzufinden sind ..
Wie man sehen kann, werden zwar die neuesten Daten in InfluxDB2 auf der Synology nunmehr wie gewünscht protokolliert, aber von den alten - wiederhergestellten!? - Daten ist nichts zu sehen.Vorhaben ..
Ich möchte meine InfluxDB2 Installation, die auf einem Pi 4 zusammen mit ioBroker installiert ist, auf Docker bzw. Container Manager einer Synology 923+ umziehen.
Vorgehen ..
- Ich habe eine Sicherung meines gesamten Systems (inklusive von InfluxDB2) auf meiner Synology erstellt.
- In der Instanz von BackItUp habe ich folgende Einstellungen/Anpassungen vorgenommen (inklusive dem neuen Token von InfluxDB aus der Docker-Installation) ..
- Ebenso habe ich die InfluxDB-Instanz geeignet angepasst ..
Ich habe keine Ahnung, was ich ggf. (noch) falsch mache und hoffe verzweifelt auf eure Unterstützung.
-
Und hier die Lösung ..
Man muss offenbar den influxdb Adapter stoppen, um ein Restore erfolgreich ausführen zu können.