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.3.4/UrBackup%20Client%20Linux%202.3.4.sh" -O $TF && sudo 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éfinie. 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 modifié par mes soins disponible sur Github, que vous pouvez télécharger et utiliser librement. Voici les étapes à suivre :
- Télécharger le script et le rendre exécutable
wget -O mysqldump.sh vtb.cx/mysqldump
chmod +x mysqldump.sh
- 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
- ajouter un cronjob
On ajoute une crontab en utilisant la commandecrontab -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
Commentaires