Backup und Restore der Influx Datenbank

Wie kann ich die Daten der Geräte grafisch darstellen? Fragen, Beispiele und Antworten zu InfluxDB und Grafana
Benutzeravatar
Ulrich
Administrator
Beiträge: 1484
Registriert: Sa 7. Nov 2015, 10:33
Wohnort: Essen
Kontaktdaten:

Backup und Restore der Influx Datenbank

Beitrag von Ulrich »

Ein Backup und Restore der Influx Datenbank "solaranzeige" ist recht einfach.

Step 1:

str+alt+F1 drücken und mit User "pi" und Kennwort "solaranzeige" anmelden.

dann "sudo mcedit /etc/influxdb/influxdb.conf" + ENTER eingeben.

Am Anfang der Datei das Doppelkreuz von der Zeile
# bind-address = "127.0.0.1:88" entfernen.


Influx1.jpg


Mit F2 und F10 die Datei abspeichern und "sudo systemctl restart influxdb" + ENTER um die Datenbank neu zu starten.

Dann "sudo influxd backup -portable -database solaranzeige -host 127.0.0.1:8088 /tmp/solaranzeige_backup" + ENTER eingeben.


Influx2.jpg


Jetzt sollte im Verzeichnis /tmp/ ein Unterverzeichnis /solaranzeige_backup vorhanden sein, in dem sich der Backup befindet.


Restore erfolgt mit dem Befehl:

Code: Alles auswählen

"sudo influxd restore -portable -db solaranzeige  /tmp/solaranzeige_backup" + ENTER
Die Datenbank "solaranzeige" darf in diesem Fall nicht exestieren. Falls sie schon vorhanden ist, folgendes vorher eingeben:

influx
drop database solaranzeige
quit

Soll die Datenbank beim Zurückspielen einen anderen Namen bekommen muss zusätzlich folgender Optionsschalter verwendet werden:
-newdb Datenbankname
Beispiel wenn die Datenbank solaranzeige in Solar1 umbenennen will:

Code: Alles auswählen

"sudo influxd restore -portable -db solaranzeige -newdb Solar1  /tmp/solaranzeige_backup" + ENTER



Das war es. Noch Fragen?
--------------------------------------
Ulrich [Admin]

XS-Base
Beiträge: 7
Registriert: Do 21. Mär 2019, 21:26

Re: Backup und Restore der Influx Datenbank

Beitrag von XS-Base »

Als user PI kann mann allerdings nicht das Verzeichnis des Backups öffnen, da nur root die Brechtigung hat.

Garbsen
Beiträge: 23
Registriert: Di 9. Jul 2019, 09:54

Re: Backup und Restore der Influx Datenbank

Beitrag von Garbsen »

XS-Base hat geschrieben:
Mi 27. Mär 2019, 23:16
Als user PI kann mann allerdings nicht das Verzeichnis des Backups öffnen, da nur root die Brechtigung hat.
Ja, die User-rechte sind natürlich grundsätzlich ein Thema.
Einerseits völlig richtig, dass hier die Rechte „vorsichtig“ vergeben sind, andererseits beim „ Basteln“ hinderlich.
Ich habe selber per sudo Befehle die Rechte erweitert, aber vielleicht kann Ulrich ja mittelfristig einmal 2 User einrichten, pi für Normalbetrieb und einen weiteren für „Bastler“, der zumindest die User.config Regler.phps und Homematic.php freigibt ;-)

Garbsen
Beiträge: 23
Registriert: Di 9. Jul 2019, 09:54

Re: Backup und Restore der Influx Datenbank

Beitrag von Garbsen »

Wäre toll, wenn es eine „Automatik“ zum Backup der Datenbank gäbe.
Ich weiß, die Wunschlisten sind Land, die Zeit aber begrenzt.
Bei dem, was Ulrich hier schon alles ermöglicht hat, traut man sich eigentlich kaum Wünsche zu äußern ;-)

Benutzeravatar
Ulrich
Administrator
Beiträge: 1484
Registriert: Sa 7. Nov 2015, 10:33
Wohnort: Essen
Kontaktdaten:

Re: Backup und Restore der Influx Datenbank

Beitrag von Ulrich »

Garbsen hat geschrieben:
Fr 19. Jul 2019, 20:04
XS-Base hat geschrieben:
Mi 27. Mär 2019, 23:16
Als user PI kann mann allerdings nicht das Verzeichnis des Backups öffnen, da nur root die Brechtigung hat.
Ja, die User-rechte sind natürlich grundsätzlich ein Thema.
Einerseits völlig richtig, dass hier die Rechte „vorsichtig“ vergeben sind, andererseits beim „ Basteln“ hinderlich.
Ich habe selber per sudo Befehle die Rechte erweitert, aber vielleicht kann Ulrich ja mittelfristig einmal 2 User einrichten, pi für Normalbetrieb und einen weiteren für „Bastler“, der zumindest die User.config Regler.phps und Homematic.php freigibt ;-)
Es gibt ja den user "root". Das Kennwort steht hier:
viewtopic.php?f=5&t=77
--------------------------------------
Ulrich [Admin]

Benutzeravatar
Ulrich
Administrator
Beiträge: 1484
Registriert: Sa 7. Nov 2015, 10:33
Wohnort: Essen
Kontaktdaten:

Re: Backup und Restore der Influx Datenbank

Beitrag von Ulrich »

Garbsen hat geschrieben:
Fr 19. Jul 2019, 20:05
Wäre toll, wenn es eine „Automatik“ zum Backup der Datenbank gäbe.
Ich weiß, die Wunschlisten sind Land, die Zeit aber begrenzt.
Bei dem, was Ulrich hier schon alles ermöglicht hat, traut man sich eigentlich kaum Wünsche zu äußern ;-)
Was hast Du dir da genau vorgestellt?
Wann soll ein Backup laufen und wohin abspeichern?
Auf den eigenen Raspberry begrenzt den Speicher sehr stark.
--------------------------------------
Ulrich [Admin]

Garbsen
Beiträge: 23
Registriert: Di 9. Jul 2019, 09:54

Re: Backup und Restore der Influx Datenbank

Beitrag von Garbsen »

Ulrich hat geschrieben:
Sa 20. Jul 2019, 10:15
Garbsen hat geschrieben:
Fr 19. Jul 2019, 20:05
Wäre toll, wenn es eine „Automatik“ zum Backup der Datenbank gäbe.
Ich weiß, die Wunschlisten sind Land, die Zeit aber begrenzt.
Bei dem, was Ulrich hier schon alles ermöglicht hat, traut man sich eigentlich kaum Wünsche zu äußern ;-)
Was hast Du dir da genau vorgestellt?
Wann soll ein Backup laufen und wohin abspeichern?
Auf den eigenen Raspberry begrenzt den Speicher sehr stark.
Eigener Raspi wäre auch bezüglich Datensicherheit nicht optimal. Backup sollte ja auch dazu dienen, dass evtl. Die SD Karte den Geist aufgibt.
Backup an eine Netzadresse (NAS) wäre gut, oder USB Stick. Gegebenenfalls 2. USB, wenn bereits vom Stick gebootet wird (muss ich mich auch mal drum kümmern ;-) )

Dan
Beiträge: 27
Registriert: Di 15. Aug 2017, 18:03
Wohnort: PLZ 15295

Re: Backup und Restore der Influx Datenbank

Beitrag von Dan »

ich mache vom meinem Pi 1x pro Woche ein Backup auf dem NAS. Dazu muss euer NAS nur dafür eingerichtet sein. Die Befehle für die Ausführung erfolgen per crontab. Je nach Netzwerk dauert die Sicherung nur einige Minuten bis zu einer halben Stunde. Das selbe könnte man natürlich auch nur zur Sicherung der Datenbank machen mit Ulrich seinem Eintrag von oben.

--------------------------------------------
Den Pi für Backup vorbereiten: Es gibt dann ein paar Abfragen die entsprechend beantwortet werden müssen.

curl -s -L -O https://www.linux-tips-and-tricks.de/ra ... Install.sh && sudo bash raspiBackupInstall.sh
sudo mkdir /backup
sudo apt-get install nfs-common -y
sudo systemctl start rpcbind
sudo systemctl enable rpcbind
--------------------------------------------

anpassen der config damit die Datenbank und Grafana gestoppft wird für die Zeit der Sicherung. sudo nano /usr/local/etc/raspiBackup.conf
angepasst werden müssen die Einträge:

# Durch & getrennte Befehle, die vor dem Starten des Backups auszuführen sind
DEFAULT_STOPSERVICES="systemctl stop grafana-server && systemctl stop influxdb"

# Durch & getrennte Befehle, die nach dem Starten des Backups auszuführen sind
DEFAULT_STARTSERVICES="systemctl start influxdb && systemctl start grafana-server"

---------------------------------------------
Dann noch crontab nach Wunsch anpassen, wann die Sicherung erfolgen soll.
Eintrag in cronatab dazufügen.

01 03 * * 6 sudo mount 192.xxx.xxx.xxx:/volume1/Raspberry/Backup_solaranzeige/backup /backup/
02 03 * * 6 sudo /usr/local/bin/raspiBackup.sh
40 04 * * 6 sudo umount /backup
--------------
Wechselrichter Effekta AX-3000P ; Speicherbatterie Pylontech US-2000B 6,4kwh ; Solarregler Epever Tracer A 30A alles an eine Pi 3B+ mit USB Stick

evilchen
Beiträge: 1
Registriert: Mi 31. Jul 2019, 09:32

Re: Backup und Restore der Influx Datenbank

Beitrag von evilchen »

Hallo zusammen,
Beim Erstellen des Backups könnt ihr euch einige Punkte sparen:
Am Anfang der Datei das Doppelkreuz von der Zeile
# bind-address = "127.0.0.1:88"
entfernen.
Die config Datei zeigt bei Influx immer den Standart an. Das heißt, dass auskommentierte Einträge den Standart wiederspiegeln.
Nur wenn die Configs geändert werden sollen, also z.B. eine andere Bind Adresse, anderer Port oder ähnliches genutzt werden soll, muss diese Zeile angepasst werden. Die Raute (doppelkreuz ;) ) muss zu diesem Beispiel nicht entfernt werden.

Auch beim Backup Befehl könnt ihr euch einen Parameter sparen:
Dann "sudo influxd backup -portable -database solaranzeige -host 127.0.0.1:8088 /tmp/solaranzeige_backup" + ENTER eingeben.
Da ihr mit - host 127.0.0.1:8088 den eigenen Pi meint (ich kenne euer Projekt nicht, bin nur über die Seite gestolpert), braucht ihr genau den host parameter nicht. Die vorher erwähnte Zeile in der Config würde ein Backup von einer remote maschine aus auch nicht zulassen, da er nur auf 127.0.0.1 (also lokal) freigegeben ist.

Da reicht also ein:

Code: Alles auswählen

sudo influxd backup -portable -database solaranzeige /tmp/solaranzeige_backup
Viele Grüße aus Düren,
Tobias

Schattenschimmer
Beiträge: 27
Registriert: Mo 29. Jul 2019, 09:44

Re: Backup und Restore der Influx Datenbank

Beitrag von Schattenschimmer »

Ich habe ein kleines bash-Script gebastelt, welches die Datenbank und weitere Dateien in ein Verzeichnis oder nach extern, z.B. in die Magentacloud (per WebDAV) sichern kann. Im Grunde werden die Dateien eingesammelt und in einem Zielordner in einen tar-file gepackt. Die Zieldatei enthält im Dateinamen einen Zeitspempel des Backups.
Folgende Dateien bzw. Ordner werden gesichert:
- Datenbank "Solaranzeige" aus der influx-db
- Konfig-Dateien der Solaranzeige: /var/www/html
(hier liegen auch die Bilder für das bessler-pictureit-panel in Grafana, falls jemand dies installiert hat).
- IP-Konfiguation: /etc/dhcpcf.conf
- grafana-Plugins: /var/lib/grafana/plugins
- /etc/php/7.3/cli/php.ini

Die Grafana Dashboards werden nicht gesichert. Ich habe noch keinen Weg gefunden, um dies per Script durchführen zu können.
Es ist aber recht einfach, ein Dashboard über den Browser zu sichern.

Im Script ist folgendes Zielverzeichnis hinterlegt: magentacloud/Solaranzeige

Bei mir werden die Dateien wie geplant gesichert. Ich habe jedoch keine Möglichkeit, die einzelnen Schritte an einem anderen System zu testen....mir fehlt dafür ein Test-Raspi. Feedback von Euch wäre also super.
Es werden wahrscheinlich mehr Dateien gesichert als unbedingt nötig. Dies resulitiert zum einen aus einer gewissen Vorsicht, aber auch aus mangelnden Kenntnissen der benötigten Dateien für die Solaranzeige.
Vielleicht kann Ulrich dazu etwas sagen. :)

Ein weiteres Script für eine Wiederherstellung ist in Arbeit. Aber hier fehlen mir noch einige Informationen über die Dateien, welche rückgesichert werden müssen und optional können.
Ulrich....??? ;) :)

Es sind diverse Schritte an der Konsole erforderlich. Es gibt diverse Wege zur Konsole, auf die ich hier nicht eingehe.
Ich mache das übrigens mit Putty von meinem Notebook aus.
Für die Anbindung an die Magentacloud und für ein oder zwei Installationen ist ein Internetzugang erforderlich.
Es muß nicht die Magentacloud verwendet werden. Theoretisch können die Backups auf einem anderen WebDAV-Server, auf einem lokalen Verzeichnis oder auf einem NAS abgelegt werden. Dafür sind natürlich Anpassungen erforderlich, evtl. müssen Protokolle installiert werden. Die Möglichkeiten dürften hier quasi unbegrenzt sein.

Etwas zur Datensicherheit: Die Daten werden nur in ein Tar-File gepackt, diese Datei wird nicht verschlüsselt oder mit einem Kennwort gesichert. Dies könnte ggfls. nachgeschoben werden, mal schauen.....


Nun aber, los geht's :)

Folgende Vorbereitungen sind erforderlich:
1. Verzeichnis "Solaranzeige" in der Magentacloud anlegen, siehe Web-Gui unter magentacloud.de

2. Verzeichnis /var/backup/ anlegen

Code: Alles auswählen

cd /var/
md backup
3. Die beiden Scripte BackupSolAnz.sh und ConnectMagenta.sh in das Verzeichnis /var/backup/ kopieren, z.B. mit FileZilla oder WinSCP.

4. Die Zugriffsrechte dieser beiden Dateien anpassen, um diese als Script ausführen zu können

Code: Alles auswählen

chmod +x /var/backup/*
5. Anbindung an die Magentacloud per WebDAV
...ist auch hier gut erklärt
Das Script ConnectMagenta.sh ist mit Kommentaren versehen und enthält einige Informationen. So ist z.B. ein User anzugeben, der die Rechte für das WebDAV bekommen soll. Weitere Anpassungen sind möglich, aber das hängt von den eigenen Kenntnissen und Vorstellungen ab.
Das Script führt die einzelnen Schritte durch, in dessen Verlauf im wesentlichen ca-certificates und davfs2 installiert sowie zwei Dateien zur Editierung aufgerufen werden.
Diese Schritte im Einzelnen:
a) Script ConnectMagenta.sh bearbeiten.
Ist nur erforderlich, wenn ein anderer User als "root" die Rechte für WebDAV bekommen soll oder andere Verzeichnisnamen verwendet werden sollen - eher etwas für Fortgeschrittene.

Code: Alles auswählen

nano /var/backup/ConnectMagenta.sh
- unter Rechtevergabe den User 'root' ggfls. durch einen anderen User ersetzen

b) Das Script ConnectMagenta.sh ausführen

Code: Alles auswählen

./ConnectMagenta.sh
oder

Code: Alles auswählen

/var/backup/ConnectMagenta.sh
ca-certificates sollte bereits installiert sein, dies wird entsprechend angezeigt. Die Frage am Ende der Installation von davfs2 mit "Ja" beantworten.
Der Ordner /media/magentacloud wird angelegt, dieser ist später der "Link" zur Magentacloud.
Es wird der Editor mit der Datei fstab aufgerufen. Am Ende die Zeile

Code: Alles auswählen

https://webdav.magentacloud.de /media/magentacloud/ davfs user,noauto,rw 0 0
einfügen und den Editort mit STRG-X beenden und J zum speichern eingeben.
Anschließend wird der Editor noch einmal aufgerufen, diesmal mit der Datei /etc/davfs2/secrets. Hier müssen die Zugangsdaten der Magentacloud (Mailsadresse und Kennwort) eingebenen werden, sofern die Backups automatisch und regelmäßig in der Magentacloud abgelegt werden sollen.
Sicherheitshinweis: Diese Zugangsdaten sind für jeden lesbar, der sich auf dem Linux anmelden kann.
Dazu unter "Credentials" folgende Zeile hinzufügen:

Code: Alles auswählen

https://webdav.magentacloud.de DeineMailAdresse WebDavPasswortMagentaCloud
Editor mit STRG-X beenden und J zum speichern eingeben.

c) Magentaclound mounten und Zugriff testen

Code: Alles auswählen

mount /media/magentacloud
Hier sollte keine Fehlermeldung kommen. Mit

Code: Alles auswählen

ls -l /media/magentacloud/
muß der Inhalt der Magentacloud angezeigt werden.

Die Magentacloud kann mit

Code: Alles auswählen

umount /media/magentacloud
getrennt werden.

6. Das eigentliche Backup-Script mit

Code: Alles auswählen

/var/backup/BackupSolAnz.sh
oder

Code: Alles auswählen

./BackupSolAnz.sh
ausführen.
Bei mir dauert das ca. 1 Minute, dann liegt in der Magentacloud im Verzeichnis "Solaranzeige" eine Datei mit dem Namen "BackupSolAnz_[Zeitstempel].tar

7. Das Backup-Script automatisch und regelmäßig ausführen
Das geht imho mit Cronjobs am einfachsten:

Code: Alles auswählen

crontab -e
Es erscheint ein Editor, welcher eine kleine Tabelle mit Cronjobs anzeigt.
Am Ende wird die Zeile angehängt, welche den Intervall und das auszuführende Script definiert:

Code: Alles auswählen

01     1   *   *   8     /var/backup/BackupSolAnz.sh              >/dev/null
Diese Zeile führt das Script jeden Sonntag um 1:01 Uhr aus.
Weitere Beispiele findet ihr hier


uiiiii, das ist deutlich länger geworden als ich dachte.....

Viel Spaß und Erfolg! :)
Dateianhänge
BackupSolAnz.sh.txt
Endung .txt entfernen
(1.38 KiB) 140-mal heruntergeladen
ConnectMagenta.sh.txt
Endung .txt entfernen
(1004 Bytes) 124-mal heruntergeladen

Antworten