Base de données
Haute Disponibilité
Backup

Déployer un Replica Set MongoDB avec authentification et sauvegarde automatisée

17 juillet 2025

2 min de lecture

Un Replica Set MongoDB permet d’assurer la haute disponibilité et la redondance des données. Ce guide détaille l’installation d’un Replica Set à trois nœuds, l’activation de l’authentification et la mise en place de sauvegardes automatisées via mongodump.

Prérequis

  • Trois serveurs Linux (Debian/Ubuntu ou RHEL/CentOS)
  • MongoDB Community Edition installé (v6.x)
  • Ports réseau ouverts : 27017

1. Configuration initiale sans authentification

Sur chaque nœud, éditez /etc/mongod.conf et configurez d'abord le Replica Set sans authentification :

replication:
  replSetName: 'rs0'
net:
  bindIp: 0.0.0.0

Redémarrez MongoDB :

sudo systemctl restart mongod

2. Créez l'utilisateur administrateur

Sur le premier nœud, créez un utilisateur admin avant d'activer l'authentification :

mongosh --eval "db.getSiblingDB('admin').createUser({user:'admin',pwd:'StrongPass123',roles:[{role:'root',db:'admin'}]});"

3. Création du keyFile pour la sécurité intra-cluster

Générez et configurez le keyFile sur le nœud primaire :

openssl rand -base64 756 > /etc/mongod/keyfile
chmod 400 /etc/mongod/keyfile
sudo chown mongod:mongod /etc/mongod/keyfile

Copiez ce fichier sur les autres nœuds avec les mêmes permissions.

4. Activation de l'authentification et du keyFile

Sur chaque nœud, éditez /etc/mongod.conf et ajoutez :

security:
  authorization: enabled
  keyFile: /etc/mongod/keyfile

Redémarrez tous les nœuds :

sudo systemctl restart mongod

5. Initialisation du Replica Set

Avec l'authentification activée, initialisez le Replica Set sur le premier nœud :

mongosh -u admin -p StrongPass123 --authenticationDatabase admin --eval 'rs.initiate({_id:"rs0",members:[{_id:0,host:"node1:27017"},{_id:1,host:"node2:27017"},{_id:2,host:"node3:27017"}]});'

6. Vérification du statut

mongosh -u admin -p StrongPass123 --authenticationDatabase admin --eval 'rs.status();'

7. Mise en place de la sauvegarde automatisée

Créez un script /usr/local/bin/mongo-backup.sh :

#!/bin/bash
TIMESTAMP=$(date +'%F_%H-%M')
BACKUP_DIR="/backups/mongo/$TIMESTAMP"
mkdir -p "$BACKUP_DIR"
mongodump --uri="mongodb://admin:StrongPass123@node1:27017,node2:27017,node3:27017/admin?replicaSet=rs0" --out="$BACKUP_DIR"
find /backups/mongo -maxdepth 1 -mtime +7 -type d -exec rm -rf {} \;

Rendez-le exécutable :

chmod +x /usr/local/bin/mongo-backup.sh

Ajoutez un cron pour sauvegarder chaque jour à 2h :

(crontab -l 2>/dev/null; echo "0 2 * * * /usr/local/bin/mongo-backup.sh >> /var/log/mongo-backup.log 2>&1") | crontab -

Conclusion

Vous avez mis en place un Replica Set MongoDB sécurisé avec authentification, haute disponibilité et sauvegardes automatisées pour garantir l'intégrité de vos données et la continuité de service.

Pour une supervision complète de votre cluster, complétez cette infrastructure avec une stack monitoring Prometheus et un load balancer HAProxy pour router les connexions efficacement.

Besoin d'aide sur ce sujet ?

Notre équipe d'experts est là pour vous accompagner dans vos projets d'infrastructure et d'infogérance.

Contactez-nous

Articles similaires