/ 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.5/UrBackup%20Client%20Linux%202.2.5.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 connnexion, une première sauvegarde complète du client sera réalisée, en fonction des options que vous aurez définies via l'interface d'administration.Les sauvegardes suivantes seront incrémentielles.

Sauvegarder vos bases de données

Si vous utilisez comme moi Urbackup en mode sauvegarde de fichiers, vous pouvez facilement sauvegarder vos bases de données en utilisant le script suivant :

wget https://raw.githubusercontent.com/MiteshShah/admin/master/backup/mysqldump.sh
bash mysqldump.sh

Ce dernier utilise les identifiants définis dans ~/my.cnf pour sauvegarder chacunes des bases de données MySQL présentes sur votre serveur dans une archive datée que vous pourrez trouvez par défaut dans /var/www/mysqldump.

Votre fichier .my.cnf doit ressembler à :

[client]
user = root
password = votremotdepasse