Sichern eines CentOS 7-Servers mit Bacula

Einführung

In diesem Tutorial erfahren Sie, wie Sie Bacula so einrichten, dass Backups eines CentOS 7-Remote-Hosts über eine Netzwerkverbindung erstellt werden. Dazu müssen Sie die Bacula Client-Software auf einem Remote-Host installieren und konfigurieren sowie einige Änderungen an der Konfiguration eines vorhandenen Bacula-Servers vornehmen (siehe die Voraussetzungen).

Wenn Sie versuchen, Backups von Ubuntu 14.04-Hosts zu erstellen, folgen Sie stattdessen diesem Link: https://www.digitalocean.com/community/tutorials/how-to-back-up-an-ubuntu-14-04-server-with -bacula [So sichern Sie einen Ubuntu 14.04-Server mit Bacula].

Voraussetzungen

In diesem Lernprogramm wird davon ausgegangen, dass auf einem Server die Bacula Server-Komponenten ausgeführt werden, wie unter folgendem Link beschrieben: https://www.digitalocean.com/community/tutorials/how-to-install-bacula-server-on-centos-7 [ So installieren Sie Bacula Server unter CentOS 7].

Wir gehen auch davon aus, dass Sie private Netzwerkschnittstellen für die Sicherung der Server-Client-Kommunikation verwenden. Wir verweisen auf den privaten FQDN der Server (FQDNs, die auf die privaten IP-Adressen verweisen). Wenn Sie IP-Adressen verwenden, ersetzen Sie einfach die Verbindungsinformationen, wo dies angebracht ist.

Für den Rest dieses Tutorials bezeichnen wir den Bacula Server als "BaculaServer", "Bacula Server" oder "Backup Server". Wir bezeichnen den Remote-Host, der gesichert wird, als "ClientHost", "Client Host" oder "Client".

Beginnen wir mit einigen schnellen Änderungen an der Bacula Server-Konfiguration.

Organisieren der Bacula Director-Konfiguration (Server)

Führen Sie diesen Abschnitt auf Ihrem * Bacula Server * einmal aus.

Möglicherweise haben Sie beim Einrichten Ihres Bacula-Servers festgestellt, dass die Konfigurationsdateien zu lang sind. Wir werden versuchen, die Bacula Director-Konfiguration ein wenig zu organisieren, sodass separate Dateien zum Hinzufügen neuer Konfigurationen wie Jobs, Dateigruppen und Pools verwendet werden.

Erstellen wir ein Verzeichnis, um die Bacula-Konfigurationsdateien besser zu organisieren:

sudo mkdir /etc/bacula/conf.d

Öffnen Sie dann die Bacula Director-Konfigurationsdatei:

sudo vi /etc/bacula/bacula-dir.conf

Am Ende der Datei füge hinzu, diese Zeile:

bacula-dir.conf - Zum Dateiende hinzufügen

@|"find /etc/bacula/conf.d -name '*.conf' -type f -exec echo @{} \;"

Speichern und schließen. In dieser Zeile sucht der Director im Verzeichnis "+ / etc / bacula / conf.d " nach zusätzlichen Konfigurationsdateien zum Anhängen. Das heißt, alle dort hinzugefügten ` .conf +` - Dateien werden als Teil der Konfiguration geladen.

RemoteFile-Pool hinzufügen

Wir möchten unserer Bacula Director-Konfiguration einen zusätzlichen Pool hinzufügen, mit dem wir unsere Remote-Sicherungsjobs konfigurieren.

Öffnen Sie die Datei + conf.d / pools.conf +:

sudo vi /etc/bacula/conf.d/pools.conf

Fügen Sie die folgende Pool-Ressource hinzu:

conf.d / pools.conf - Poolressource hinzufügen

Pool {
 Name = RemoteFile
 Pool Type = Backup
 Label Format = Remote-
 Recycle = yes                       # Bacula can automatically recycle Volumes
 AutoPrune = yes                     # Prune expired volumes
 Volume Retention = 365 days         # one year
   Maximum Volume Bytes = 50G          # Limit Volume size to something reasonable
 Maximum Volumes = 100               # Limit number of Volumes in Pool
}

Speichern und schließen. Dies definiert einen "RemoteFile" -Pool, den wir für den Sicherungsjob verwenden, den wir später erstellen werden. Sie können die Parameter jederzeit ändern, um sie an Ihre Bedürfnisse anzupassen.

Bacula Director muss noch nicht neu gestartet werden. Überprüfen wir jedoch, ob die Konfiguration fehlerfrei ist:

sudo bacula-dir -tc /etc/bacula/bacula-dir.conf

Wenn keine Fehler vorliegen, können Sie mit der Einrichtung des Bacula-Clients fortfahren.

Installieren und konfigurieren Sie Bacula Client

Führen Sie diesen Abschnitt auf jedem * Client-Host * aus, den Sie zu Ihrem Bacula-Setup hinzufügen.

Dann installieren Sie das Paket + bacula-client +:

sudo yum install bacula-client

Dadurch wird der Bacula File Daemon (FD) installiert, der häufig als "Bacula-Client" bezeichnet wird.

Client konfigurieren

Bevor Sie den Client-Dateidämon konfigurieren, sollten Sie die folgenden Informationen nachschlagen, die im weiteren Verlauf dieses Lernprogramms verwendet werden:

  • * Client-Hostname: *: In unserem Beispiel wird "ClientHost" verwendet.

  • * Privater Client-FQDN: * Wir bezeichnen dies als "client_private_FQDN", was wie folgt aussehen kann: "+ clienthost.private.example.com +"

  • * Bacula Server-Hostname: * In unserem Beispiel wird "BackupServer" verwendet.

Ihr tatsächliches Setup weicht vom Beispiel ab. Nehmen Sie daher gegebenenfalls Ersetzungen vor.

In der File Daemon-Konfiguration muss ein Kennwort festgelegt werden, mit dem der Bacula Director eine Verbindung herstellen kann. Lassen Sie uns jetzt ein zufälliges Passwort generieren (oder Sie können diesen Schritt überspringen und Ihr eigenes Passwort erstellen):

date +%s | sha256sum | base64 | head -c 33 ; echo

Sie möchten die Ausgabe kopieren, da Sie sie im nächsten Schritt verwenden werden.

Öffnen Sie die File Daemon-Konfiguration:

sudo vi /etc/bacula/bacula-fd.conf

Wir müssen einige Elemente ändern und einige Informationen speichern, die wir für unsere Serverkonfiguration benötigen.

Suchen Sie zunächst die Director-Ressource mit dem Namen "ClientHost-dir". Da sich der Bacula Director, den wir diesen Client steuern möchten, auf dem Bacula Server befindet, ändern Sie den Parameter "Name" in den Hostnamen Ihres Sicherungsservers, gefolgt von "-dir". Ersetzen Sie außerdem das vorhandene Kennwort durch das Kennwort, das Sie im vorherigen Schritt generiert haben. Es sollte ungefähr so ​​aussehen, nachdem es aktualisiert wurde:

bacula-fd.conf - Aktualisieren Sie den Director-Namen und das Kennwort

Director {
 Name = -dir
 Password = ""
}

Halten Sie das Passwort bereit. Es wird in der Director-Konfiguration des Sicherungsservers verwendet, die wir in einem nächsten Schritt festlegen, um eine Verbindung zum File Daemon Ihres Clients herzustellen.

Als nächstes müssen wir einen Parameter in der FileDaemon-Ressource anpassen. Wir werden den Parameter "+ FDAddress " so ändern, dass er dem privaten FQDN unseres Clientcomputers entspricht. Der Parameter " Name +" sollte bereits korrekt mit dem Namen des Client-Dateidämons ausgefüllt sein. Die Ressource sollte ungefähr so ​​aussehen (ersetzen Sie den tatsächlichen FQDN oder die IP-Adresse):

bacula-fd.conf - Name aktualisieren und FDAddress hinzufügen

FileDaemon {                          # this is me
 Name = -fd
 FDAddress =
 FDport = 9102                  # where we listen for the director
 WorkingDirectory = /var/spool/bacula
 Pid Directory = /var/run
 Maximum Concurrent Jobs = 20
}

Wir müssen diesen Dämon auch so konfigurieren, dass seine Protokollnachrichten an den Sicherungsserver weitergeleitet werden. Suchen Sie die Nachrichtenressource und ändern Sie den Parameter "+ director +", um den Hostnamen Ihres Sicherungsservers mit dem Suffix "-dir" abzugleichen. Es sollte ungefähr so ​​aussehen:

bacula-fd.conf - Director aktualisieren

Messages {
 Name = Standard
 director =  -dir = all, !skipped, !restored
}

Speichern Sie die Datei und beenden Sie sie. Ihr File Daemon (Bacula Client) ist jetzt so konfiguriert, dass er auf Verbindungen über das private Netzwerk wartet.

Überprüfen Sie mit dem folgenden Befehl, ob Ihre Konfigurationsdatei die richtige Syntax aufweist:

sudo bacula-fd -tc /etc/bacula/bacula-fd.conf

Wenn der Befehl keine Ausgabe zurückgibt, hat die Konfigurationsdatei eine gültige Syntax. Starten Sie den Dateidämon neu, um die neuen Einstellungen zu verwenden:

sudo systemctl restart bacula-fd

Führen Sie dann den folgenden Befehl aus, um den Bacula File Daemon beim Booten automatisch zu starten:

sudo systemctl enable bacula-fd

Richten wir ein Verzeichnis ein, in das der Bacula Server Dateien wiederherstellen kann. Erstellen Sie die Dateistruktur und sperren Sie die Berechtigungen und den Besitz für die Sicherheit mit den folgenden Befehlen:

sudo mkdir -p /bacula/restore
sudo chown -R bacula:bacula /bacula
sudo chmod -R 700 /bacula

Der Clientcomputer ist jetzt richtig konfiguriert. Als nächstes konfigurieren wir den Backup Server so, dass eine Verbindung zum Bacula Client hergestellt werden kann.

Dateigruppen hinzufügen (Server)

Ein Bacula FileSet definiert eine Reihe von Dateien oder Verzeichnissen, die Dateien von einer Sicherungsauswahl einschließen oder ausschließen und von Sicherungsaufträgen auf dem Bacula Server verwendet werden.

Wenn Sie das vorausgesetzte Lernprogramm befolgt haben, in dem die Bacula Server-Komponenten eingerichtet werden, haben Sie bereits ein FileSet mit dem Namen "Full Set". Wenn Sie Sicherungsjobs ausführen möchten, die fast alle Dateien auf Ihren Sicherungsclients enthalten, können Sie dieses FileSet in Ihren Jobs verwenden. Es kann jedoch vorkommen, dass Sie häufig nicht alle Daten auf einem Server sichern möchten oder müssen und dass eine Untergruppe von Daten ausreicht.

Wenn Sie selektiver auswählen, welche Dateien in einem FileSet enthalten sind, wird weniger Speicherplatz und Zeit benötigt, um einen Sicherungsauftrag auszuführen. Dies kann auch die Wiederherstellung vereinfachen, da Sie nicht den gesamten Satz durchsuchen müssen, um zu ermitteln, welche Dateien wiederhergestellt werden sollen.

Wir zeigen Ihnen, wie Sie neue FileSet-Ressourcen erstellen, damit Sie beim Sichern gezielter vorgehen können.

Öffnen Sie auf Ihrem * Bacula Server * eine Datei mit dem Namen + filesets.conf + im zuvor erstellten Bacula Director-Konfigurationsverzeichnis:

sudo vi /etc/bacula/conf.d/filesets.conf

Erstellen Sie eine FileSet-Ressource für jede bestimmte Gruppe von Dateien, die Sie in Ihren Sicherungsjobs verwenden möchten. In diesem Beispiel erstellen wir ein FileSet, das nur die Verzeichnisse home und etc enthält:

filesets.conf - Home und Etc FileSet hinzufügen

FileSet {
 Name = ""
 Include {
   Options {
     signature = MD5
     compression = GZIP
   }


 }
 Exclude {

 }
}

In dieser Datei ist eine Menge los, aber hier sind ein paar Details zu beachten:

  • Der FileSet-Name muss eindeutig sein

  • Schließen Sie alle Dateien oder Partitionen ein, von denen Sie Backups erstellen möchten

  • Schließen Sie alle Dateien aus, die Sie nicht sichern möchten, die jedoch aufgrund einer vorhandenen Datei ausgewählt wurden

Sie können bei Bedarf mehrere FileSets erstellen. Speichern und beenden, wenn Sie fertig sind.

Jetzt können Sie einen Sicherungsjob erstellen, der unser neues FileSet verwendet.

Client und Sicherungsjob zu Bacula Server hinzufügen

Jetzt können wir unseren Client zum Bacula-Server hinzufügen. Dazu müssen wir den Bacula Director mit neuen Client- und Job-Ressourcen konfigurieren.

Öffnen Sie die Datei + conf.d / clients.conf +:

sudo vi /etc/bacula/conf.d/clients.conf

Client-Ressource hinzufügen

Eine Client-Ressource konfiguriert den Director mit den Informationen, die zum Herstellen einer Verbindung zum Client-Host erforderlich sind. Dies umfasst den Namen, die Adresse und das Kennwort des Client-Dateidämons.

Fügen Sie diese Client-Ressourcendefinition in die Datei ein. Vergewissern Sie sich, dass Sie den Hostnamen, den privaten FQDN und das Passwort Ihres Clients (aus der + bacula-fd.conf + des Clients) eingeben, wobei Folgendes hervorgehoben ist:

conf.d / clients.conf - Clientressource hinzufügen

Client {
 Name = -fd
 Address =
 FDPort = 9102
 Catalog = MyCatalog
 Password = ""          # password for Remote FileDaemon
 File Retention = 30 days            # 30 days
 Job Retention = 6 months            # six months
 AutoPrune = yes                     # Prune expired Jobs/Files
}

Sie müssen dies nur einmal für jeden Client tun.

Erstellen Sie einen Sicherungsjob:

Ein Sicherungsjob, der einen eindeutigen Namen haben muss, definiert die Details, welcher Client und welche Daten gesichert werden sollen.

Fügen Sie als Nächstes diesen Sicherungsjob in die Datei ein und ersetzen Sie den hervorgehobenen Text durch den Hostnamen des Clients:

conf.d / clients.conf - Sicherungsauftragsressource hinzufügen

Job {
 Name = "Backup"
 JobDefs = "DefaultJob"
 Client = -fd
 Pool = RemoteFile
 FileSet="Home and Etc"
}

Dadurch wird ein Sicherungsjob mit dem Namen "BackupClientHost" erstellt, der die im FileSet "Home and Etc" definierten Home- und etc-Verzeichnisse des Client-Hosts sichert. Es werden die Einstellungen verwendet, die in den Pool-Ressourcen "DefaultJob" JobDefs und "RemoteFile" angegeben sind, die beide in der Hauptdatei "+ bacula-dir.conf " definiert sind. Standardmäßig werden Jobs, die " JobDefs =" DefaultJob "+" angeben, wöchentlich ausgeführt.

Speichern und beenden, wenn Sie fertig sind.

Überprüfen Sie die Director-Konfiguration

Vergewissern Sie sich, dass Ihre Director-Konfigurationsdatei keine Syntaxfehler enthält:

sudo bacula-dir /etc/bacula/bacula-dir.conf

Wenn Sie zur Shell-Eingabeaufforderung zurückkehren, sind in den Konfigurationsdateien Ihres Bacula Director keine Syntaxfehler enthalten.

Starten Sie Bacula Director neu

Starten Sie Bacula Director neu, um die vorgenommenen Konfigurationsänderungen zu übernehmen:

sudo systemctl restart bacula-dir

Jetzt ist Ihr Client oder Remote-Host so konfiguriert, dass er von Ihrem Bacula-Server gesichert wird.

Clientverbindung testen

Wir sollten sicherstellen, dass der Bacula Director eine Verbindung zum Bacula Client herstellen kann.

Geben Sie auf Ihrem Bacula-Server die Bacula-Konsole ein:

sudo bconsole
status client
Select Client resource: ClientHost-fdThe defined Client resources are:
    1: BackupServer-fd
    2: ClientHost-fd
Select Client (File daemon) resource (1-2):

Der File Daemon-Status des Clients sollte sofort wieder angezeigt werden. Ist dies nicht der Fall und liegt ein Verbindungsfehler vor, liegt ein Fehler in der Konfiguration des Bacula-Servers oder des Client-Dateidämons vor.

Test Backup Job

Führen Sie den Sicherungsjob aus, um sicherzustellen, dass er funktioniert.

Verwenden Sie auf dem * Bacula Server *, während Sie sich noch in der Konsole befinden, diesen Befehl:

run

Sie werden aufgefordert, den auszuführenden Job auszuwählen. Wählen Sie die zuvor erstellte aus, z. “4. BackupClientHost ”:

Select Job resource: BackupClientHostThe defined Job resources are:
    1: BackupLocalFiles
    2: BackupCatalog
    3: RestoreLocalFiles
    4: BackupClientHost
Select Job resource (1-4):

Geben Sie an der Bestätigungsaufforderung "Ja" ein:

Confirmation prompt:
OK to run? (yes/mod/no):

Überprüfen Sie Nachrichten und Status

Nach dem Ausführen eines Jobs teilt Bacula Ihnen mit, dass Sie Nachrichten haben. Die Nachrichten werden durch die Ausführung von Jobs generiert.

Überprüfen Sie die Nachrichten, indem Sie Folgendes eingeben:

messages

In der Meldung sollte "Kein vorheriger Datensatz für vollständigen Sicherungsjob gefunden" stehen und der Sicherungsjob wurde gestartet. Wenn Fehler auftreten, stimmt etwas nicht, und sie sollten Ihnen einen Hinweis geben, warum der Job nicht ausgeführt wurde.

Eine andere Möglichkeit, den Status des Jobs anzuzeigen, besteht darin, den Status des Directors zu überprüfen. Geben Sie dazu den folgenden Befehl an der bconsole-Eingabeaufforderung ein:

status director

Wenn alles ordnungsgemäß funktioniert, sollten Sie feststellen, dass Ihr Auftrag ausgeführt wird oder mit dem Status "OK" beendet wurde.

Führen Sie die Wiederherstellung durch

Wenn Sie zum ersten Mal einen neuen Bacula-Client einrichten, sollten Sie testen, ob die Wiederherstellung ordnungsgemäß funktioniert.

Wenn Sie eine Wiederherstellung durchführen möchten, verwenden Sie den Befehl + restore + in der Bacula Console:

restore all

Ein Auswahlmenü mit vielen verschiedenen Optionen wird angezeigt, mit denen festgelegt wird, von welchem ​​Sicherungssatz die Wiederherstellung erfolgen soll. Da wir nur eine einzige Sicherung haben, wählen wir "Letzte Sicherung auswählen", Option 5:

Select item (1-13):5

Dann müssen Sie angeben, welcher Client wiederhergestellt werden soll. Wir möchten den gerade eingerichteten Remote-Host wiederherstellen, z. "ClientHost-fd":

Select the Client: ClientHost-fdDefined Clients:
    1: BackupServer-fd
    2: ClientHost-fd
Select the Client (1-2):

Dadurch gelangen Sie in einen virtuellen Dateibaum mit der gesamten Verzeichnisstruktur, die Sie gesichert haben. Diese Shell-ähnliche Oberfläche ermöglicht es, mit einfachen Befehlen die Markierung von wiederherzustellenden Dateien aufzuheben.

Da wir festgelegt haben, dass alle wiederhergestellt werden sollen, ist jede gesicherte Datei bereits für die Wiederherstellung markiert. Markierte Dateien werden durch ein vorangestelltes "+ * +" gekennzeichnet.

Wenn Sie Ihre Auswahl verfeinern möchten, können Sie mit den Befehlen "ls" und "cd" durch Dateien navigieren und sie auflisten, Dateien zur Wiederherstellung mit "mark" markieren und Dateien mit "unmark" entmarkieren. Eine vollständige Liste der Befehle erhalten Sie, indem Sie "help" in die Konsole eingeben.

Wenn Sie mit der Auswahl der Wiederherstellung fertig sind, geben Sie Folgendes ein:

done

Bestätigen Sie, dass Sie den Wiederherstellungsjob ausführen möchten:

OK to run? (yes/mod/no):yes

Überprüfen Sie Nachrichten und Status

Wie bei Sicherungsjobs sollten Sie nach dem Ausführen eines Wiederherstellungsjobs die Nachrichten und den Director-Status überprüfen.

Überprüfen Sie die Nachrichten, indem Sie Folgendes eingeben:

messages

Es sollte eine Meldung angezeigt werden, die besagt, dass der Wiederherstellungsjob gestartet wurde oder mit dem Status "Restore OK" beendet wurde. Wenn Fehler auftreten, stimmt etwas nicht, und sie sollten Ihnen einen Hinweis geben, warum der Job nicht ausgeführt wurde.

Auch hier können Sie den Status eines Wiederherstellungsjobs anhand des Director-Status überprüfen:

status director

Wenn Sie mit der Wiederherstellung fertig sind, geben Sie "+ exit +" ein, um die Bacula Console zu verlassen:

exit

Wenn alles ordnungsgemäß funktioniert hat, befinden sich Ihre wiederhergestellten Dateien auf Ihrem Client-Host im Verzeichnis "+ / bacula / restore +". Wenn Sie lediglich den Wiederherstellungsprozess getestet haben, sollten Sie den Inhalt dieses Verzeichnisses löschen.

Fazit

Sie haben jetzt einen Bacula-Server, der Dateien von einem entfernten Bacula-Client sichert. Überprüfen und überarbeiten Sie Ihre Konfiguration, bis Sie sicher sind, dass Sie die richtigen FileSets nach einem Ihren Anforderungen entsprechenden Zeitplan sichern. Wenn Sie versuchen, Backups von Ubuntu 14.04-Hosts zu erstellen, folgen Sie diesem Link: https://www.digitalocean.com/community/tutorials/how-to-back-up-an-ubuntu-14-04-server-with- bacula [So sichern Sie einen Ubuntu 14.04-Server mit Bacula].

Als Nächstes wiederholen Sie die relevanten Abschnitte dieses Tutorials für alle weiteren CentOS 7-Server, die Sie sichern möchten.