Hetzner - DokuWiki

BackupService
(Direkter Zugriff auf die bestehenden Repositories mit Borg)
Zeile 62: Zeile 62:
  
 
'''Repository Inhalte anzeigen'''<br />
 
'''Repository Inhalte anzeigen'''<br />
<code>borg list ssh://u123456@u123456.your-storagebox.de:23/./borg_repos/&lt;server-id&gt;</code>
+
<pre>borg list ssh://<username>@<username>.your-storagebox.de:23/./borg_repos/&lt;server-id&gt;</pre>
  
 
'''Archiv Inhalte anzeigen'''<br />
 
'''Archiv Inhalte anzeigen'''<br />
<code>borg list ssh://u123456@u123456.your-storagebox.de:23/./borg_repos/&lt;server-id&gt;::&lt;archive-id&gt;</code>
+
<pre>borg list ssh://<username>@<username>.your-storagebox.de:23/./borg_repos/&lt;server-id&gt;::&lt;archive-id&gt;</pre>
  
 
==== Inhalte aus dem Repository extrahieren ====
 
==== Inhalte aus dem Repository extrahieren ====
Zeile 71: Zeile 71:
 
Um Dateien wiederherzustellen verwenden Sie [https://borgbackup.readthedocs.io/en/stable/usage/extract.html borg-extract]. Sie können dabei ein komplettes Archiv:
 
Um Dateien wiederherzustellen verwenden Sie [https://borgbackup.readthedocs.io/en/stable/usage/extract.html borg-extract]. Sie können dabei ein komplettes Archiv:
  
<code>borg extract ssh://u123456@u123456.your-storagebox.de:23/./borg_repos/&lt;server-id&gt;::&lt;archive-id&gt;</code>
+
<pre>borg extract ssh://<username>@<username>.your-storagebox.de:23/./borg_repos/&lt;server-id&gt;::&lt;archive-id&gt;</pre>
  
 
oder nur bestimmte Verzeichnisse oder Dateien wiederherstellen:
 
oder nur bestimmte Verzeichnisse oder Dateien wiederherstellen:
  
<code>borg extract ssh://u123456@u123456.your-storagebox.de:23/./borg_repos/`&lt;server-id&gt;::&lt;archive-id&gt;` path/to/folder/or/file</code>
+
<pre>borg extract ssh://<username>@<username>.your-storagebox.de:23/./borg_repos/`&lt;server-id&gt;::&lt;archive-id&gt;` path/to/folder/or/file</pre>
  
 
==== Weitere Backups erstellen ====
 
==== Weitere Backups erstellen ====
Zeile 83: Zeile 83:
 
Um beispielsweise die Ordner &quot;~/src&quot; und &quot;~/built&quot; zu sichern können Sie folgenden Befehl verwenden:
 
Um beispielsweise die Ordner &quot;~/src&quot; und &quot;~/built&quot; zu sichern können Sie folgenden Befehl verwenden:
  
<code>borg create --stats ssh://u123456@u123456.your-storagebox.de:23/./borg_repos/&lt;server-id&gt;::archive123 ~/src ~/built</code>
+
<pre>borg create --stats ssh://<username>@<username>.your-storagebox.de:23/./borg_repos/&lt;server-id&gt;::archive123 ~/src ~/built</pre>
  
 
Mit dem Parameter --stats können Sie sich Details zum fertiggestellten Backup ausgeben lassen. Borg stellt noch einige weitere Parameter oder Patterns zur Verfügung die angegeben werden können. Weitere Informationen dazu finden Sie ebenfalls in der Borg Dokumentation.
 
Mit dem Parameter --stats können Sie sich Details zum fertiggestellten Backup ausgeben lassen. Borg stellt noch einige weitere Parameter oder Patterns zur Verfügung die angegeben werden können. Weitere Informationen dazu finden Sie ebenfalls in der Borg Dokumentation.

Version vom 30. Juli 2019, 04:04 Uhr

Inhaltsverzeichnis

Über den Backup Service

Der Backup Service ist ein neues Feature der Storage Produkte. Es kann für Storage Boxen und Backup Spaces genutzt werden. Mit dem Backup Service ist es möglich, einfach und automatisiert Dateisystem Backups zu erstellen. Der Dienst besteht aus 3 wesentlichen Bestandteilen:

  • Webpanel:
    Das zentrale Userinterface, um Backuppläne zu konfigurieren oder auf Backups zu zugreifen
  • Backup Software:
    Das Programm, das die Backups ausführt. borgbackup
  • Backup Agent:
    Der Backup Agent wird auf dem zu sichernden Server installiert.

Der Backup Agent dient als Vermittler zwischen Weboberfläche und der Backup Software. Von der Weboberfläche werden Einstellungen, oder Befehle an den Backup Agent geschickt. Der Agent steuert die Ausführung der Backup Software und sendet Informationen über die ausgeführten Backups an die Weboberfläche.

Disclaimer

Bitte beachten Sie, dass Sie weiterhin die Verantwortung für Ihre Daten tragen und Hetzner Online keinerlei Garantie für einen möglichen Datenverlust gibt. Eine Spiegelung der Daten auf andere Server findet nicht statt. Bitte beachten Sie hierzu die Punkte 4.1/4.2 in unseren AGB: https://www.hetzner.com/rechtliches/agb

Features

  • Verschlüsselung:
    Die Daten werden bereits vor der Übertragung zum Backup Server verschlüsselt. Die gesicherten Daten können nur durch Eingabe eines Passwortes entschlüsselt werden. Dieses Passwort wird nicht in unserem System gespeichert!
  • Automatisierung:
    Für die Backups können flexible Zeitpläne eingestellt werden. Nach der Einrichtung werden Backups je nach Konfiguration automatisch ausgeführt.
  • Einfach:
    Der Backup Service hat eine einfach zu bedienende und übersichtliche Weboberfläche.

Kompatibilität

Unterstützte Betriebssysteme:

  • Debian 9
  • Ubuntu 16.04
  • Ubuntu 18.04

Python Versionen:

  • >= Python 3.5

Wechsel vom Hetzner Backup-Service zu Borg-Backup

Der Hetzner Backup-Service setzt im Hintergrund Borg-Backup ein. Somit besteht auch ohne den Backup-Service voller Zugriff auf alle Backups. Auch können die bestehenden Repositories weiter genutzt und weitere Backups hinzugefügt werden.

Der Backup-Service speichert die Borg-Repositories im Home-Verzeichnis Ihrer Storage Box/Backup-Space im Verzeichnis ".borg_repos".
In diesem Verzeichnis ist für jeden Server, den Sie im Webpanel des Backup-Service angelegt haben ein Repository/Verzeichnis mit zugehöriger Server ID vorhanden.

Direkter Zugriff auf die bestehenden Repositories mit Borg

Hier finden Sie eine Übersicht der einfachsten Zugriffsmöglichkeiten auf die Repositories. Ausführliche Informationen zu Borg finden Sie in der offiziellen Borg Dokumentation oder in der Beschreibung in der Hetzner Community.

Für den Zugriff mit Borg auf die einzelnen Repositories verwenden Sie folgende repository URL:

ssh://u123456@u123456.your-storagebox.de:23/./borg_repos/<server-id>

Dabei ersetzen Sie u123456 durch Ihren Usernamen und server-id durch die Server-Id, die Ihnen auch im Web-Panel angezeigt wird.

Wichtig ist, dass das SSH-Feature im Robot weiter aktiviert ist und Sie Port 23 verwenden.

Inhalt anzeigen

Mit borg-list können die Inhalte eines Borg-Repositories oder eines Borg-Archivs angezeigt werden.

Repository Inhalte anzeigen

borg list ssh://<username>@<username>.your-storagebox.de:23/./borg_repos/<server-id>

Archiv Inhalte anzeigen

borg list ssh://<username>@<username>.your-storagebox.de:23/./borg_repos/<server-id>::<archive-id>

Inhalte aus dem Repository extrahieren

Um Dateien wiederherzustellen verwenden Sie borg-extract. Sie können dabei ein komplettes Archiv:

borg extract ssh://<username>@<username>.your-storagebox.de:23/./borg_repos/<server-id>::<archive-id>

oder nur bestimmte Verzeichnisse oder Dateien wiederherstellen:

borg extract ssh://<username>@<username>.your-storagebox.de:23/./borg_repos/`<server-id>::<archive-id>` path/to/folder/or/file

Weitere Backups erstellen

Mit borg-create können weitere Dateien oder Verzeichnisse in ein Repository gesichert werden.

Um beispielsweise die Ordner "~/src" und "~/built" zu sichern können Sie folgenden Befehl verwenden:

borg create --stats ssh://<username>@<username>.your-storagebox.de:23/./borg_repos/<server-id>::archive123 ~/src ~/built

Mit dem Parameter --stats können Sie sich Details zum fertiggestellten Backup ausgeben lassen. Borg stellt noch einige weitere Parameter oder Patterns zur Verfügung die angegeben werden können. Weitere Informationen dazu finden Sie ebenfalls in der Borg Dokumentation.

Backups automatisieren

Damit die Backups wie im Backup-Service automatisch gestartet werden, können Sie ein Skript erstellen, welches beispielsweise über Cron getriggert wird. Ein Beispiel dafür finden Sie in unserer Community

Einrichtung

Aktivierung

Der Backup Service wird über den Robot aktiviert. Unter den Funktionen der Storage Box/Backup Space muss das Feature Backup Service aktiviert werden. Um Backups durchführen zu können muss außerdem das SSH Feature aktiviert werden.

Zugriff

Die Urls für den Backupservice unterscheiden sich für die Storage Boxes und Backup Spaces.

Storage Box:

https://webpanel-<username>.your-storagebox.de

Backup Space:

https://webpanel-<username>.your-backup.de

Die Anmeldung an der Weboberfläche erfolgt dann mit den Storage Box / Backup Space Zugangsdaten.

Server anlegen

Mit dem Backupservice können mehrere Server gesichert werden. Für jeden Server wird ein Backup-Repository auf der Storage Box / dem Backup Space angelegt. Beim Anlegen eines Servers werden folgende Informationen benötigt:

  • Name:
    Einem Server wird ein Name gegeben, damit die Backups einem Server zugeordnet werden können
  • Backup Passwort:
    Das Passwort mit dem das Backup Repository verschlüsselt wird.
    VORSICHT: OHNE DIESES PASSWORT KANN NICHT AUF DIE BACKUPS ZUGEGERIFFEN WERDEN
  • SSH-Key:
    Die Backups werden per SSH auf den Backup Server übertragen. Damit die Backups automatisch durchgeführt werden können muss ein öffentlicher SSH Key auf der Storagebox / Backup Space hinterlegt werden. Dieser SSH Key darf nicht mit einem Passwort geschützt sein.

Beim Erstellen des Servers wird eine eindeutige Server ID erzeugt. Diese Server ID wird benötigt, um den Backup Agent zu konfigurieren.

Backup Agent einrichten

Nachdem an der Weboberfläche ein Server angelegt wurde, muss der Backup Agent auf dem zu sichernden Server eingerichtet werden.

Installation

Der Backup Agent und seine Abhängigkeiten werden auf einem eigenen Mirror bereit gestellt.

  • Mirror in sources.list eintragen:
wget https://packages.hetzner.com/backupservice/stretch.list -O /etc/apt/sources.list.d/backup-packages-mirror.list

oder

wget https://packages.hetzner.com/backupservice/xenial.list -O /etc/apt/sources.list.d/backup-packages-mirror.list

oder

wget https://packages.hetzner.com/backupservice/bionic.list -O /etc/apt/sources.list.d/backup-packages-mirror.list


  • GPG Key zur apt keychain hinzufügen:
wget -O - https://packages.hetzner.com/backupservice/backupservice.hetzner.gpg.key | apt-key add -
  • Aktualisieren der apt Repositories und Installieration des Backup Agents:
apt-get update && apt-get install python3-hetznerbackupagent
  • Falls die Installation mit folgendem Hinweis fehlschlägt:
E: The method driver /usr/lib/apt/methods/https could not be found.

Muss noch die transport-https lib installiert werden:

apt-get install apt-transport-https

Konfiguration

Nach der Installation kann der Backup Agent über den Befehl backup_agent aufgerufen werden.

 backup_agent --help
 usage: backup_agent [-h] [-r config_id] [-v] [-i] [-s [help-PARAM]] [-t] [-c]
  [-d]
 Hetzner Backup Agent
 optional arguments:
  -h, --help show this help message and exit
  -r config_id, --run config_id
  Trigger a backup with a config id.
  -v, --version Display version information
  -i, --info Display application information
  -s [help-PARAM], --setup [help-PARAM]
  Starts the configuration of the application. More
  information with "-setup help-all"
  -t, --test_ssh Checks if a ssh connection can be established.
  -c, --clean Removes all files associated with BackupAgent,
  including conf- ,log- andsystemd- files
  -d, --debug Sets the loglevel to debug

Das Setup wird über backup_agent --setup aufgerufen. Anschließend werden Schritt für Schritt alle nötigen Informationen abgefragt:

  • FQDN des Backup Servers:
    Die Url, über die die Weboberfläche erreichbar ist.
  • Username:
    Der Username für das Storage Produkt
  • Server ID:
    Die Server ID, die beim Anlegen des Servers an der Weboberfläche erzeugt wurde.
  • API Key:
    Schlüssel zur Authentifizierung an der Weboberfläche. Wird von der Weboberfläche bereit gestellt.
  • IP Address(Backup Agent Version <= 0.1.5):
    Die öffentliche IP Adresse ihres Servers.
  • Backup Passwort:
    Das Backup Passwort, dass beim Anlegen des Server an der Weboberfläche vergeben wurde.
  • SSH Key path:
    Pfad zum privaten SSH Schlüssel. Der zugehörige öffentliche Schlüssel wurde bereits beim Anlegen des Servers an der Weboberfläche hinterlegt.

Nachdem ein Server an der Weboberfläche angelegt wurde, werden alle nötigen Informationen zur Einrichtung des Backup Agents angezeigt. Die Konfigurationshilfe kann auch über die Server Optionen aufgerufen werden.

Nach der Einrichtung wird der Backup Agent als Systemd Unit registriert und gestartet. Die Backups werden über Systemd Timer gesteuert. Dazu werden folgende Systemd Units erzeugt:

  • hetzner.backup_agent.service:
    Systemd unit für den Backup Agent, sorgt dafür, dass der Agent immer ausgeführt wird. Das ist notwendig, damit von der Weboberfläche Einstellungen und Befehle übertragen werden können. Wenn bereits Backuppläne eingerichtet sind und keine Konfigurationsänderungen zu erwarten sind, kann diese Unit auch deaktiviert werden.
  • hetzner.backup_timer_x.timer:
    Für jeden Backupplan (x) gibt es einen Timer, der festlegt wann der Backupplan ausgeführt wird.
  • hetzner.backup_runner_x.service:
    Diese Unit wird von dem zugehörigen Timer aufgerufen und enthält den Befehl, über den letztendlich das Backup ausgeführt wird.

Weitere Dateien, die vom Backup Agent erzeugt werden:

  • /etc/BackupAgent/agent_conf.json:
    Enthält die gesamte Konfiguration des Backup Agents.
  • /var/lib/BackupAgent/backuptrack.json:
    Enthält eine Liste über alle laufenden Backups mit der zugehörigen Prozess ID
  • /var/log/hetzner.backup_agent.log:
    Log Datei für den Backup Agent Hauptprozess
  • /var/log/hetzner.backup_agent_runner_x.log:
    Log Infos zur Ausführung des zugehörigen Backupplans

Nach dem ersten Start kann es ein paar Minuten dauern, bis der BackupAgent im Webpanel als verbunden angezeigt wird.

Hinweise zum Backup Agent

  • Betrieb hinter einer Firewall:

Backup Agent <= 0.1.5: Der Backup Agent nutzt einen Port (default: 45111).
Backup Agent >= 0.1.6: Der Backup Agent nutzt den Port 5671.
Über diesen Port versucht das Webpanel dem Backup Agent Konfigurationsinformationen zu schicken.
Vergewissern Sie sich, dass der verwendete Port und die IP des Backupservers nicht von einer Firewall (intern / Robot Firewall) blockiert wird.

  • Starten / Stoppen: Der Backup Agent wird von systemd verwaltet. Somit wird er automatisch gestartet und neu gestartet bei unerwarteten Anwendungsfehlern. Der Backup Agent kann mit folgenden Befehlen gestartet oder gestoppt werden.
    • systemctl start hetzner.backup_agent.service
    • systemctl stop hetzner.backup_agent.service
  • Manuell starten: Wenn die Backup Agent systemd unit gestoppt wurde, kann das Programm auch per Kommandozeilen Befehl gestartet werden, ohne systemd zu verwenden. Mit dem Parameter "-d" wird der Backup Agent im debug-Mode gestartet
    backup_agent -d

Backupplan erstellen

Zu jedem Server können mehrere Backuppläne erstellt werden. Ein Backupplan beschreibt die Aufgabe Backups durchzuführen. Für einen Backupplan sind folgende Informationen notwendig:

  • Name:
    Eindeutige Benennung des Backup Plans zur Unterscheidung bei Verwendung mehrerer Backup Pläne
  • Dateiauswahl:
    • Include:
      Auswahl aller Verzeichnisse und Dateien die beim Backup berücksichtigt werden sollen
    • Exclude:
      Auswahl aller Verzeichnisse und Dateien die nicht gesichert werden sollen, obwohl sie sich in einem inkludierten Verzeichnis befinden.
    • Hinweis:
      Soll das ganze Dateisystem gesichert werden, sollten folgende Verzeichnisse ausgeschlossen werden:
      /dev, /proc, /sys, /var/run, /run, /lost+found, /mnt, /var/lib/lxcfs
  • Zeitplan:
    Hier wird bestimmt wann die Backups ausgeführt werden sollen. Es ist möglich mehrere Wochentage, mehrere Stunden und eine Minutenangabe in 15 minütigen Schritten anzugeben.
  • Vorhaltezeit:
    Legt fest wie lange Backups gespeichert werden sollen.
    • Keep hours:
      Legt die max. Anzahl an stündlichen Backups fest, die vorgehalten werden soll.
    • Keep days:
      Legt die max. Anzahl an täglichen Backups fest, die vorgehalten werden soll.
    • Keep weeks:
      Legt die max. Anzahl an wöchentlichen Backups fest, die vorgehalten werden soll.
    • Keep months:
      Legt die max. Anzahl an monatlichen Backups fest, die vorgehalten werden soll.
    • Keep years:
      Legt die max. Anzahl an jährlichen Backups fest, die vorgehalten werden soll.
    • Enable automatic pruning:
      Wenn aktiviert, wird das Repository nach jeden automatischen Backup bereinigt. Alle Backups die nicht zu den eingetragenen Kriterien passen werden gelöscht.
    • Beispiel: Es soll das letzte Backup der letzten 7 Tage, sowie das letzte Backup der 4 letzten Wochen und das letzte Backup jedes Monats behalten werden:
      Keep days = 7,Keep weeks = 4,Keep months = -1

Nachdem ein Backupplan gespeichert wurde, wird dieser automatisch zum Backup Agent übertragen.

Backup manuell starten

Wenn alle Einrichtungsschritte durchgeführt wurden, kann in den Backupplan Optionen über den Trigger-Button ein Backup manuell gestartet werden.

Backups

Backup Infos

Zu jedem Backup werden Informationen gespeichert, so kann schnell erkannt werden, ob Backups wie erwartet ausgeführt werden.

  • Status:
    Gibt an ob ein Backup erfolgreich oder fehlerhaft war.
  • Speicherverbrauch:
    Zeigt die Größe einzelner Backups und die Größe des gesamten Backup Repositories.
  • Dateianzahl:
    Gibt an wie viele Dateien in einem Backup sind.
  • Zeiten:
    Ausführungszeiten und Dauer eines Backups.

Zugriff auf Backup Daten

Um auf die gesicherten Daten zugreifen zu können muss das Backup Passwort eingegeben werden. Danach werden alle gesicherten Dateien in der Weboberfläche aufgelistet. Bei sehr großen Backups kann dies einen Moment dauern, Für den Zugriff auf die Dateien gibt es 3 Möglichkeiten:

  • Datei / Ordner auf Storage Box / Backup Space extrahieren:
    Die Datei oder der Ordner wird auf dem Storage Box / Backup Space wiederhergestellt. Dabei wird in einem "Recovery" Verzeichnis die gesamte Ordner Struktur der extrahierten Daten abgebildet. Mit aktiviertem WebDAV Feature kann nun direkt auf die wiederhergestellten Daten zugegriffen werden.
  • Datei / Ordner auf Storage Box / Backup Space als Archiv extrahieren:
    Stellt die ausgewählten Daten in einem Tar Archiv auf dem Storage Box / Backup Space zur Verfügung. Mit aktiviertem WebDAV Feature kann das Archiv anschließend direkt heruntergeladen werden.
  • Dateien ansehen:
    Textbasierte Dateien und bestimmte Bild-Dateien können direkt im Webpanel angezeigt werden.
    • Textdateien:
      Für viele Textdateien wird ein Syntax Highlighting verwendet.
    • Bild-Dateien:
      Derzeit unterstützte Dateiformate sind: jpg, gif, png.

Betriebsarten

Daemon Modus

Standardmäßig wird der Backup Agent im Daemon Modus ausgeführt. Das bedeudet, dass die Anwendung permanent ausgeführt wird. So kann der Backup Agent jederzeit Nachrichten vom Webpanel entgegen nehmen. Das bringt den Vorteil, dass jederzeit Backup Pläne aktualisiert werden können und Backups jederzeit manuell gestartet werden können. Der Nachteil dieser Konfiguration ist, dass permanent ein Port vom Backup Agent offen gehalten wird. Sie sollten sich bewusst sein, dass geöffnete Port ein potentielles Sicherheitsrisiko darstellen können.

Bedarfs Modus

Um Backups auszuführen und am Webpanel Informationen anzuzeigen ist es nicht erforderlich, dass der Backup Agent permament ausgeführt wird. Nach erfolgreicher Konfiguration der Backuppläne kann der Backup Agent auch gestoppt werden. Die systemd Timer sind zu diesem Zeitpunkt erstellt und sorgen dafür, dass die Backups ausgeführt werden. Um den Backup Agent in den Bedarfs Modus zu versetzen reicht es den Backup Agent nach erfolgreicher Konfiguration der Backup Pläne zu stoppen.

systemctl stop hetzner.backup_agent.service

Wenn der Backup Agent gestoppt wurde, können allerdings keine weiteren Backuppläne angelegt oder vorhandene aktualisiert werden. Auch das Triggern von Backups ist nun nicht mehr möglich. Wenn die Konfiguration aktualisiert werden soll muss der Backup Agent zuvor neu gestartet werden.

systemctl start hetzner.backup_agent.service

VORSICHT: Der Backup Agent wird auch nach einem Systemstart im Daemon Modus neu gestartet.

Backup Agent Change Log

Version 0.1.2

Initial Release

Version 0.1.3

  • IP V6 Support hinzugefügt

Version 0.1.4

  • Aktualisierte Abhängigkeit: Pyro4 auf 4.73
  • Aktualisierte Abhängigkeit: Serpent auf 1.25

Version 0.1.5

  • Verbesserung beim Auslesen der Backup Stats

Version 0.1.6

  • Backup Vorhaltezeit hinzugefügt
  • Pyro entfernt. RPC wird nun über Message Queuing durchgeführt


© 2019. Hetzner Online GmbH. Alle Rechte vorbehalten.