Mittwoch, 23 Dezember 2020 10:45

Zentrale Rsync-Backup-Überwachung mit Go-lang- und Lumen-Web-API

Artikel bewerten
(0 Stimmen)

Rsync ist eine robuste und zuverlässige Lösung für Unix-Systeme, um Daten schnell und zuverlässig auf andere Geräte (z. B. NAS-Systeme) zu kopieren. Ich verwende Rsync seit Jahren für meine Datensicherung von meinem Ubuntu-Server auf ein NAS-System von QNAP, das meine Daten wiederum auf eine externe Festplatte repliziert, die dann offline im Schrank landet. Rsync macht dies jeden Tag zuverlässig und ohne Probleme und startet mit einem Cronjob. Die Protokolldateien protokollieren alles bis ins letzte Detail - bisher war für mich keine explizite Datensicherungssoftware erforderlich.

Rsync Logfile Entry

Das Problem mit mehreren Geräten

In den letzten Monaten habe ich mein Heimnetzwerk massiv umgebaut. Ein Docker Host und 3 Raspberry Pi's wurden hinzugefügt. Sowohl der Docker-Host als auch eine der drei Himbeeren möchten gesichert werden. Dies kann natürlich problemlos mit Rsync durchgeführt werden. Es ist jedoch umständlich zu überwachen, ob die Datensicherung zuverlässig funktioniert. Ich konnte mich regelmäßig auf Geräte mit SSH-Verbindungen und Protokolldateien überprüfen. Alternativ könnte ich die Protokolldateien auch in eine freigegebene Bestellung aufnehmen und überprüfen. Ich würde jedoch eine zentrale Überwachung der Datensicherungen bevorzugen, ohne Protokolldateien lesen zu müssen.

Current structure of my data backup

DIY Datensicherung mit Rsync

Getreu dem Motto "Warum einfach, wenn es kompliziert wird" habe ich meinen Datensicherungsprozess um eine zentrale Überwachung erweitert. Mein Gedanke war, eine einfache Web-API mit Lumen (PHP) zu programmieren, an die die wichtigsten Informationen der Sicherung gesendet werden, sobald die Datensicherung abgeschlossen ist. Die Analyse der Protokolldateien macht mich zu einem Programm, das ich mit Go geschrieben und kompiliert habe. Das Go-Programm sendet den Hostnamen, den Jobnamen (über Parameter übergeben), den Zeitstempel der Sicherung sowie die Anzahl der Dateien und neuen Daten an die Web-API. Eine einfache einseitige Webanwendung (mit VueJS programmiert) zeigt mir dann meine Datensicherungsinformationen an. Ich integriere diese Weboberfläche als externe Seite in Nextcloud und habe daher alles auf einen Blick.

First draft - design is embellished;)

Rsync Backup Monitor

RSync Monitor installieren

Der vollständige Code meiner Lösung ist Open Source und auf GitHub verfügbar. Am einfachsten ist es, die fertigen Docker-Images zu verwenden, um die Anwendung selbst zu installieren. Sie müssen jedoch das Go-Programm selbst kompilieren und die Ziel-IP-Adresse der Web-API im Voraus anpassen. In der nächsten Version wird die Web-API-Adresse als Startparameter übergeben. Ebenso müssen Sie die API-Adresse im Frontend anpassen, über die jeder Client die API erreichen kann. Dies ist normalerweise die IP Ihres Docker-Hosts.

Anweisungen in englischer Sprache finden Sie in der Readme-Datei auf meinem GitHub Repository.

Information

Diese Software lebt vom Community-Support. Ich denke, dies ist hilfreich oder wenn Sie möchten, dass ich diese Anwendung verbessere, markieren Sie diese Anwendung bitte auf github oder noch besser: Werden Sie Sponsor auf Patreon, PayPal oder GitHub

Gelesen 85 mal Letzte Änderung am Mittwoch, 23 Dezember 2020 10:49

Schreibe einen Kommentar

Bitte achten Sie darauf, alle Felder mit einem Stern (*) auszufüllen. HTML-Code ist nicht erlaubt.