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

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

Read this article in english: Zentrale Rsync Backup Überwachung mit Go-lang und Lumen Web-API

Rsync ist eine robuste und zuverlässige Lösung für Unix Systeme um Daten schnell und zuverlässig auf andere Geräte zu kopieren (z.B. NAS Systeme). Ich nutze Rsync seit Jahren für meine Datensicherung von meinem Ubuntu Server auf ein NAS System von QNAP, welches widerum meine Daten auf eine Externe Festplatte repliziert die dann offline im Schrank landet. Rsync macht dies zuverlässig und ohne Probleme täglich und wird bei mir über einen Cronjob gestartet. Die Logfiles protokollieren alles bis aufs letzte Detail - Für mich war bisher keine explizite Datensicherungssoftware notwendig.

Rsync Logfile Auszug

Das Problem mit mehreren Geräten

In den letzten Monaten habe ich mein Heimnetzwerk massiv umgerüstet. Ein Docker Host und 3 Raspberry Pi’s sind hinzugekommen. Sowohl der Docker-Host wie auch einer der 3 Raspberries wollen gesichert werden. Dies ist selbstverständlich ohne Probleme mit Rsync machbar. Jedoch ist es umständlich zu überwachen das die Datensicherung auf zuverlässig funktioniert. Ich könnte mich regelmäßig auf die Geräte mit SSH Verbindungen und die Logfiles prüfen. Alternativ könnte ich auch die Logfiles auf ein freigegebenen Order legen und diesen kontrollieren. Eine Zentrale Überwachung der Datensicherungen ohne Logfiles lesen zu müssen wäre mir jedoch lieber.

Aktueller Aufbau meiner Datensicherung

In Groß anzeigen

DIY Datensicherung auf Rsync Basis

Ganz nach dem Motto “Warum einfach wenn es auch kompliziert geht”, habe ich meinen Datensicherungsprozess um die zentrale Überwachung erweitert. Mein Gedanke war eine simple Web API mit Lumen (PHP) zu programmieren, an welche die für mich wichtigsten Informationen der Sicherung gesendet werden, sobald die Datensicherung gelaufen ist. Die Analyse der Logfiles macht für mich ein programm das ich mit Go geschrieben und kompiliert habe. Dabei sendet das Go Programm den Hostnamen, den Job-Namen (Wird über Parameter übergeben), Zeitstempel der Sicherung, sowie Anzahl der Dateien und neuen Daten an die Web-API. Eine einfache Single Page Webapplikation (Programmiert mit VueJS) zeigt mir dann meine Datensicherungsinformationen an. Diese Weboberfläche binde ich mir in Nextcloud als Externe Seite ein und habe somit alles auf einen Blick.

Erster Entwurf - Design wird noch verschönert ;)

Rsync Backup Monitor

RSync Monitor selbst installieren

Der komplette 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. Was Sie jedoch tun müssen ist das Go Programm selbst kompilieren und vorher die Ziel IP-Adresse der Web API anzupassen. In der nächsten Version werde ich die Web API Adresse als Start-Parameter übergeben lassen. Ebenso müssen Sie im Frontend die API Adresse anpassen über die jeder Client die API erreichen kann, dies ist in der Regel die IP von Ihrem Docker-Host.

Eine Anleitung in Englisch finden Sie in der Readme Datei auf meinen GitHub Repository.

Hilfe benötigt?

Ich biete diverse Dienstleistungen im Bereit der Softwareentwicklung und IT-Consulting an.
Schreiben Sie mir einfach - Wir prüfen gemeinsam im kostenlosen Erstberatungsgespräch, wie ich Ihnen helfen kann