Un Replica Set MongoDB tient 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 configuration 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
Votre Replica Set MongoDB tourne désormais avec authentification, bascule automatique en cas de panne d'un nœud et sauvegardes planifiées. L'intégrité des données et la continuité de service reposent sur cette base.
Pour superviser le cluster, complétez cette infrastructure avec une stack monitoring Prometheus et un load balancer HAProxy qui route les connexions.


