Aller au contenu

Sauvegarde et restauration

Que sauvegarder

Élément Chemin Pourquoi
Base de données base MariaDB infrariver Toutes les données : inventaire, historique, réglages des connecteurs, comptes, constats acceptés…
Configuration et secrets /etc/infrariver/ server.conf contient SECRET_KEY et SMTP_ENCRYPT_KEY, qui servent à chiffrer des secrets stockés en base (identifiants de collecte, mot de passe SMTP). Sans eux, ces secrets sont illisibles après une restauration.
Licence /etc/infrariver/license.asc Fichier de licence signé
Certificats générés /var/lib/infrariver/tls/ et /var/lib/infrariver/mtls/ Certificat web, et autorité de la passerelle mTLS. Sans cette autorité, chaque Collector doit recevoir un nouveau certificat.

/opt/infrariver/ n'a pas besoin d'être sauvegardé : il est réinstallé par le paquet.

Les sauvegardes contiennent des secrets

server.conf et la base contiennent des secrets et des données sensibles sur votre infrastructure. Stockez les sauvegardes avec les mêmes protections que le serveur lui-même (accès restreint, chiffrement au repos).

Sauvegarder la base

sudo infrariver-admin backup

écrit une sauvegarde compressée et cohérente (instantané de la base, même pendant une synchronisation) dans /var/lib/infrariver/backups/infrariver-AAAAMMJJ-HHMMSS.sql.gz (mode 0640). En cas d'échec de mysqldump, aucun fichier n'est laissé et la commande le dit.

Comptez 20 à 25 % de la taille de la base par sauvegarde.

Quand la lancer

Lancez-la en dehors des heures de synchronisation des connecteurs (la nuit, par exemple) : une sauvegarde prise pendant une synchronisation peut contenir des tables à des instants légèrement différents.

Pour une sauvegarde quotidienne avec 7 jours de conservation, créez /etc/cron.d/infrariver-backup :

# Sauvegarde de la base InfraRiver tous les jours à 2 h 30, conservation 7 jours
30 2 * * * root /usr/bin/infrariver-admin backup >/dev/null && find /var/lib/infrariver/backups -name 'infrariver-*.sql.gz' -mtime +7 -delete

Sauvegardez aussi la configuration et les certificats :

sudo tar -czf infrariver-etc.tar.gz /etc/infrariver
sudo tar -czf infrariver-tls.tar.gz /var/lib/infrariver/tls /var/lib/infrariver/mtls

Copiez ensuite ces archives et /var/lib/infrariver/backups/ vers votre solution de sauvegarde habituelle (agent de sauvegarde, rsync vers un serveur distant…). Une sauvegarde qui reste uniquement sur le serveur ne protège pas contre la perte du serveur.

Restaurer

Sur un serveur réinstallé avec la même version du paquet infrariver :

  1. Arrêter InfraRiver :
    sudo systemctl stop infrariver infrariver-ingest
    
  2. Remettre la configuration, la licence et les certificats :
    sudo tar -xzf infrariver-etc.tar.gz -C /           # /etc/infrariver/
    sudo tar -xzf infrariver-tls.tar.gz -C /           # /var/lib/infrariver/tls/ et mtls/
    sudo restorecon -R /etc/infrariver /var/lib/infrariver
    
  3. Recréer la base vide (voir Installer le paquet principal), puis importer la sauvegarde :
    gunzip -c infrariver-AAAAMMJJ-HHMMSS.sql.gz | mysql -u infrariver -p infrariver
    
  4. Redémarrer et vérifier :
    sudo systemctl start infrariver infrariver-ingest
    journalctl -u infrariver -n 50 --no-pager
    
    Connectez-vous, ouvrez une page de connecteur et lancez un test de connexion : il valide que les secrets chiffrés en base sont lisibles avec la SECRET_KEY restaurée.

Testez votre restauration

Une sauvegarde n'est fiable que si elle a déjà été restaurée. Faites un essai sur une VM de test au moins une fois par an, et après chaque changement d'architecture.

Avant une mise à jour du paquet

sudo infrariver-admin backup
sudo dnf upgrade infrariver

Le schéma de la base est mis à jour automatiquement au redémarrage. Avec une sauvegarde prise juste avant, un retour arrière reste possible : réinstaller la version précédente du paquet, puis restaurer la sauvegarde.