/ Backup

Déployer un système de backup centralisé avec UrBackup

La gestion des backups peut rapidement devenir un problème lorsque l'on gère un grand nombre de serveurs, aussi bien pour gérer l'espace de stockage que pour le suivi des backups. Je vais donc vous présenter la solution UrBackup.

UrBackup est une solution de sauvegarde client/serveur qui propose plusieurs système de backup, sous forme d'image disque ou par répertoire de fichiers.
Les principaux avantages de cette solution sont sa facilité de déploiement, sa gestion de l'espace de stockage avec des backups complets ou incrémentaux. Mais également sa compabilité avec Windows, MacOS et Linux.

Dans mon cas, UrBackup me sert à réaliser des sauvegardes de serveurs web. Il est installé sur un serveur Kimsufi KS-2A avec 2To de stockage commandé dans le cadre d'une offre à 8.99€/mois.

Mais il est tout à fait possible d'utiliser directement le backup storage proposé avec les serveurs OVH ou Online.net. Il suffit pour cela de monter le backup storage en NFS et de définir l'emplacement des sauvegardes UrBackup durant l'installation.

Installation du serveur UrBackup

L'installation du serveur UrBackup peut se faire sur Windows, Linux mais également sur les distributions comme FreeNas, OpenMediaVault ainsi que sur des NAS QNAP.

Vous pouvez trouver les instructions d'installation sur la page Downloads du site Urbackup. Dans mon cas j'ai choisi d'utiliser Ubuntu 16.04 LTS qui permet l'installation via les dépôts PPA.

On commence donc par ajouter le dépôt puis on installe le paquet urbackup-server :

sudo add-apt-repository ppa:uroni/urbackup  
sudo apt-get update  
sudo apt-get install urbackup-server

Durant le processus, vous serez inviter à choisir le répertoire dans lequel UrBackup va réaliser les sauvegardes. On peut ensuite accéder à l'interface d'administration via l'adresse http://IP-DU-SERVEUR:55414.

Les réglages principaux à définir après l'installation sont :

  • la création d'un utilisateur pour protéger l'accès à l'interface
  • le type de sauvegarde que vous souhaitez utiliser (image, fichiers, les deux)
  • le dossier par défaut à sauvegarder
  • la fréquence et le nombre de sauvegardes
  • le type de réseau (local ou sur internet)
  • les informations smtp pour l'envoi des notifications

Pour mes serveurs web, je n'utilise pour le moment que les sauvegardes de fichiers et le dossier par défaut à sauvegarder est /var/www.


Installation du client UrBackup

Pour linux, l'installation du client UrBackup se fait via une seule ligne de commande :

TF=`mktemp` && wget "https://hndl.urbackup.org/Client/2.2.6/UrBackup%20Client%20Linux%202.2.6.sh" -O $TF && sh $TF; rm $TF

Durant l'installation, il vous sera demandé quel type de sauvegarde vous souhaitez utiliser pour la réalisation d'image disque (dans le cas où le système de fichier le permet). Par la suite la mise à jour du client sera automatique.
Il est nécessaire d'ouvrir les ports 35621, 35622 et 35623 pour pouvoir connecter votre client au serveur Urbackup.

Si vous utilisez UFW, vous pouvez les ouvrir uniquement vers l'IP de votre serveur Urbackup :

ufw allow from IP.DE.VOTRE.SERVEUR-URBACKUP to any port 35621
ufw allow from IP.DE.VOTRE.SERVEUR-URBACKUP to any port 35622
ufw allow from IP.DE.VOTRE.SERVEUR-URBACKUP to any port 35623

Dès la première connexion au serveur (après avoir ajouté l'IP ou le hostname du client via l'interface UrBackup Server), une première sauvegarde complète du client sera réalisée, en fonction des options que vous aurez définies. Les sauvegardes suivantes seront incrémentielles.

La configuration du client urbackup se trouve dans le fichier /etc/default/urbackupclient, dans lequel vous pouvez changer l'option RESTORE="disabled" par RESTORE="server-confirms" pour autoriser la restauration d'un backup depuis l'interface d'administration de UrBackup Server.

Modification qui peut être effectuée avant de connecter le client au serveur avec la commande :

sed -i 's/RESTORE=disabled/RESTORE="server-confirms"/' /etc/default/urbackupclient

Sauvegarder vos bases de données

Si vous utilisez Urbackup en mode sauvegarde de fichiers, vous allez sûrement souhaitez sauvegarder vos bases de données. Et pour cela il y a deux solutions avec UrBackup.

Utiliser mysqldump

C'est la solution la plus simple à mettre en place, puisque vous pouvez utiliser un cronjob pour exécuter un script bash régulièrement.
J'utilise par exemple un script disponible sur Github, que vous pouvez installer en quelques minutes. Voici les étapes à suivre :

  1. Télécharger le script et le rendre exécutable
wget https://raw.githubusercontent.com/MiteshShah/admin/master/backup/mysqldump.sh
chmod +x mysqldump.sh
  1. Définir les identifiants root pour MySQL dans .my.cnf
    Pour accéder à vos bases de données, le script utilise les identifiants stockés dans le fichier ~/my.cnf. Ce fichier doit ressembler à :
[client]
user = root
password = votremotdepasse
  1. ajouter un cronjob
    On ajoute une crontab en utilisant la commande crontab -e, puis en ajoutant la ligne :
@daily /root/mysqldump.sh > /dev/null

Il ne reste plus qu'à enregister la modification et le cronjob réalisera ainsi un backup journalier de chacune des bases de données, stocké par défaut dans le dossier /var/www/mysqldump.

Utiliser Percona XtraBackup pour des sauvegardes incrémentielles

UrBackup a une fois de plus prévu tout ce qu'il vous faut, puisqu'il permet de réaliser des sauvegardes incrémentales de votre serveur MySQL, en utilisant l'outil Percona XtraBackup qui réalise des sauvegardes à chaud du dossier /var/lib/mysql que vous pouvez restaurer en quelques minutes.

Avant de pouvoir utiliser XtraBackup, il vous faut installer le paquet percona-xtrabackup. Pour MariaDB, le dépôt apt est automatiquement ajouté par le script mariadb_repo_setup.

Exemple pour MariaDB 10.1

curl -sS https://downloads.mariadb.com/MariaDB/mariadb_repo_setup \
| sudo bash -s -- --mariadb-server-version=10.1 --skip-maxscale
sudo apt update && sudo apt install percona-xtrabackup -y

Exemple pour MariaDB 10.2

curl -sS https://downloads.mariadb.com/MariaDB/mariadb_repo_setup \
| sudo bash -s -- --mariadb-server-version=10.2 --skip-maxscale
sudo apt update && sudo apt install percona-xtrabackup-24 -y

Une fois XtraBackup installé, il faut éditer le fichier /usr/local/etc/urbackup/mariadbxtrabackup.conf, dans lequel il faut remplacer MARIADB_XTRABACKUP_ENABLED=0 par MARIADB_XTRABACKUP_ENABLED=1 et définir le mot de passe root de MySQL à la fin du fichier.

On peut ensuite activer la configuration avec la commande :

/usr/local/share/urbackup/scripts/setup-mariadbbackup

Et vérifier que la sauvegarde fonctionne avec la commande :

/usr/local/share/urbackup/scripts/mariadbxtrabackup > /dev/null

Pour restaurer la dernière sauvegarde, vous pourrez utiliser la commande :

/usr/local/share/urbackup/scripts/restore-mariadb
Déployer un système de backup centralisé avec UrBackup
Share this