X

Influx-Datenbank mit Node-Red automatisch auf FTP-Server sichern

Geschrieben amgeschrieben von Dennis, zuletzt aktualisiert am RSS Feed
In dieser Anleitung beschreibe ich detailliert, wie man von einer Influx-Datenbank ein Backup macht und dieses wieder einspielen kann. Ich beschreibe sowohl das manuelle Vorgehen für ein Backup, als auch die Möglichkeit eines automatischen Backups, welches auf einem externen FTP-Server gesichert wird.

Es ist quasi eine kleine Erweiterung zu unserer Anleitung MQTT Daten mit Node-RED in InfluxDB2 speichern und in Grafana visualisieren. Die Installation der hier benötigten Programme ist in dieser Anleitung bereits ausführlich beschrieben, daher beschränke ich mich hier ausschließlich auf die zusätzlichen Schritte.



Backup manuell erstellen


Die einfachste Möglichkeit, ein Backup zu erstellen, besteht darin, dies manuell über die Konsole zu tun. Dazu meldet ihr euch auf eurem Gerät via SSH an und gebt dort folgenden Befehl ein:

influx backup <backup-pfad> -t <access-token>


backup-pfad - Ist der Pfad wo das backup gespeichert werden soll
access-token - Der Access Token wurde bei der Installation von InfluxDB angezeigt

Der Backup-Befehl könnte dann zum Beispiel so aussehen:

influx backup /home/piuser/backup/influxdb2 -t FNMzefK########tSJAqh############gdNfeWyyjKNGFx1_t###########nGfl2Tr8WAQ#############==


Daraufhin läuft das Backup durch und in dem von uns ausgewählten Ordner finden sich nun die Backup-Dateien:

Influx-Datenbank mit Node-Red automatisch auf FTP-Server sichern


Automatisches Backup erstellen mit Node-Red


Alles zur Installation von Node-Red findet ihr in der Eingangs erwähnten Anleitung, daher starten wir hier mit der Installation der benötigten Paletten in Node-Red. Dazu gehen wir oben Rechts auf das Menü-Symbol und öffnen dort die Einstellungen. Hier gehen wir dann auf den Bereich Palette und Installation. Dort geben wir im Suchfeld node-red-contrib-ftp ein und installieren die ganz oben erscheinende Palette.

Influx-Datenbank mit Node-Red automatisch auf FTP-Server sichern

Als nächstes suchen wir nach node-red-contrib-moment und installieren hier wieder die Palette, die ganz oben erscheint.

Influx-Datenbank mit Node-Red automatisch auf FTP-Server sichern

Nun müssen wir den Flow erstellen, dazu ziehen wir uns als erstes ein inject-node in den Flow und öffnen von diesem die Einstellungen mit einem Doppelklick. Hier geben wir dem Node als erstes einen Namen und wählen dann im unteren Bereich aus, wann und wie oft das Backup durchgeführt werden soll.

Influx-Datenbank mit Node-Red automatisch auf FTP-Server sichern
Dann benötigen wir eine exec-node, dass wir neben das eben erstellte node ziehen und mit einem Doppelklick darauf die Einstellungen öffnen. Hier vergeben wir wieder einen Namen und tragen im Feld Befehl den Befehl ein, den wir auch bei dem manuellen Backup genutzt haben.

Influx-Datenbank mit Node-Red automatisch auf FTP-Server sichern

Damit ist die automatische Sicherung auch schon eingerichtet, jetzt würde regelmäßig ein Backup im ausgewählten Ordner gespeichert werden. Um das ganze etwas übersichtlicher zu gestalten, möchte ich die vielen Backup-Dateien aber noch komprimieren und die erstellte Datei mit dem aktuellen Datum versehen.

Dazu ziehen wir uns ein weiteres exec-node in den Flow und öffnen diesen wieder. Auch hier geben wir wieder einen Namen ein und dann den folgenden Befehl, um die Dateien zu komprimieren:

tar -zcvf "<Pfad Zielort><Name der Datei>" "<Pfad Quelldateien>"


Beispiel:
tar -zcvf "/home/nucuser/backup/influxdb2.tar.gz" "/home/nucuser/backup/influxdb2"


Influx-Datenbank mit Node-Red automatisch auf FTP-Server sichern

Nun könnten wir die einzelnen Dateien natürlich behalten, da wir diese jedoch nicht mehr benötigen, werden wir diese nach der Komprimierung automatisch löschen.

Dazu benötigen wir wieder ein exec-node in dem wir den folgenden Befehl eingeben:

rm -r "Pfad zu den Dateien die komprimiert wurden"


Beispiel:
rm -r "/home/nucuser/backup/influxdb2"


Influx-Datenbank mit Node-Red automatisch auf FTP-Server sichern

Als nächstes möchte ich das Backup auf einen FTP-Server verschieben. Damit unser Backup dabei nicht jedes Mal überschrieben wird, fügen wir dem Dateinamen noch das aktuelle Datum hinzu. Dafür holen wir uns als erstes das mit der moment-Palette installierte Date/Time Formatter-node in unseren Flow.

Hier vergeben wir wieder einen Namen und schreiben ins Feld Output Format in welchem Format das Datum nachher im Dateinamen stehen soll.

Beispiel:
YYYY-MM-DD >>> Jahr-Monat-Tag >>> 2023-15-09


Influx-Datenbank mit Node-Red automatisch auf FTP-Server sichern

Als nächstes benötigen wir ein function-node, mit dem wir den endgültigen Dateinamen festlegen. Hierzu tragen wir den folgenden code in den Reiter Funktion ein:

var msg = { filename: msg.payload + "_influxdb2.tar.gz" };
return msg;


Damit wird der Dateiname aus dem Datum des Backups und dem Namen _influxdb2.tar.gz zusammengesetzt. Als letztes vergeben wir noch einen Namen für die Funktion.

Influx-Datenbank mit Node-Red automatisch auf FTP-Server sichern

Jetzt kopieren wir das Backup auf einen FTP-Server, dafür holen wir uns ein ftp in-node in unseren Flow rein und tragen dort als erstes die Daten unseres FTP-Servers ein (1).

Danach wird der Server automatisch ausgewählt und als nächstes stellen wir die Operation auf put. Jetzt tragen wir noch den lokalen Pfad zum Backup ein und geben dem Node als letztes noch einen Namen.

Beispielpfad:
/home/nucuser/backup/influxdb2.tar.gz




Nun möchte ich die lokale komprimierte Datei noch löschen, dazu brauchen wir wieder ein exec-node in dem wir folgenden Befehl eintragen:

rm -r "<Pfad>"


Beispiel:
rm -r "/home/nucuser/backup/influxdb2.tar.gz"


Influx-Datenbank mit Node-Red automatisch auf FTP-Server sichern

Als letztes müssen wir die erstellten Nodes nun noch per drag and drop miteinander verbinden und dann einmal auf den Übernahme-Button (oben rechts) drücken.

Influx-Datenbank mit Node-Red automatisch auf FTP-Server sichern

Damit ist die automatische Sicherung der Influx-Datenbank erstellt, die Dateien werden zusätzlich komprimiert, auf einen FTP-Server verschoben und am Ende alle lokalen Dateien gelöscht.

Um alles zu testen, kann man das Backup auch manuell starten, dafür muss man nur einmal auf den kleinen blauen Button klicken, der links an dem ersten Node hängt.

Influx-Datenbank mit Node-Red automatisch auf FTP-Server sichern

Man kann den Flow nach eigenen Wünschen anpassen, für das Backup selbst sind nur die ersten beiden Nodes nötig.



Backup manuell einspielen


Um das Backup auf dem gleichen Gerät und der gleichen Installation wieder einzuspielen nutzen wir den Befehl:

sudo influx restore <backup-pfad>


Wenn ein Backup auf einer neuen Installation von InfluxDB eingespielt werden soll, sind ein paar weitere Schritte erforderlich.

Nach der Installation (Anleitung) darf das Setup nicht über die Weboberfläche gestartet werden, anstelle dessen führt man das Setup auf der Konsole mit folgendem Befehl aus:

sudo influx setup --token <Access Token der ursprünglichen Installation>


Beispiel:
sudo influx setup --token FNMzefK########tSJAqh############gdNfeWyyjKNGFx1_t###########nGfl2Tr8WAQ#############==


Hiermit wird dann der Access Token der alten Installation in die neue Installation übernommen.

Nun kann man alle Daten und Einstellungen des Backups mit dem folgenden Befehl wieder einspielen:

sudo influx restore <backup-pfad> --full


Beispiel:
sudo influx restore /home/nucuser/backup/influxdb2 --full



Wie man vielleicht an meinem Beispiel sieht, habe ich die InfluxDB von einem Raspberry Pi auf eine Intel NUC * umgezogen. Da ich dort allen Programmen den selben Nutzernamen zuordnen möchte, dieser auf dem Raspberry Pi jedoch anders war, habe ich den Nutzernamen schnell noch mit folgendem Befehl angepasst:

influx user update -i <user-id> -n <new-username>


Die User-ID findet man in dem man auf der Weboberfläche links auf den Nutzernamen und dann auf den eintrag “About” geht.

Beispiel:
sudo influx user update -i 0b759f85eda20000 -n nucuser



Das war es dann auch schon, so könnt ihr ganz einfach eure Influx-Daten sicher speichern.

Bei Links, die mit einem * gekennzeichnet sind, handelt es sich um Affiliate-Links, bei denen wir bei einem Kauf eine Vergütung durch den Anbieter erhalten.
VG-Wort

Kommentare (0)


Diesen Artikel kommentieren:

Hinweis:

  • Nur Fragen / Antworten direkt zum Artikel
  • Kein Support für andere Hard- oder Software !


   
   
Ergebnis der Rechenaufgabe   Bild neu laden

   
optional
  Wenn Du eine E-Mail-Adresse angibst, informieren wir dich, sobald es hier etwas Neues gibt.
   
 
E-Mail Abo
E-Mail Benachrichtigung bei neuen Artikeln
RSS Feed
Abonniert unseren RSS-Feed
benötigt einen RSS-Reader