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 de l’authentification
Sur chaque nœud, éditez /etc/mongod.conf
:
security:
authorization: enabled
Redémarrez MongoDB :
sudo systemctl restart mongod
Créez un utilisateur administrateur :
mongo --eval "db.getSiblingDB('admin').createUser({user:'admin',pwd:'StrongPass123',roles:[{role:'root',db:'admin'}]});"
2. Initialisation du Replica Set
Dans /etc/mongod.conf
, ajoutez :
replication:
replSetName: "rs0"
net:
bindIp: 0.0.0.0
Redémarrez les services, puis sur le premier nœud :
mongo -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"}]});'
3. Vérification du statut
mongo -u admin -p StrongPass123 --authenticationDatabase admin --eval 'rs.status();'
4. 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.