La gestion de MongoDB sur un VPS Linux implique l’installation, la configuration, la sécurité et l’optimisation des performances.

1. Installation de MongoDB sur un SDV Linux

MongoDB peut être installé à l’aide de gestionnaires de paquets comme apt (pour Debian/Ubuntu) ou yum (pour CentOS/RHEL).

Pour Ubuntu/Debian

  1. Mettre à jour la liste des paquets:
    sudo apt update
    sudo apt upgrade -y
  2. Importer la clé GPG de MongoDB:
    curl -fsSL https://www.mongodb.org/static/pgp/server-6.0.asc | sudo gpg --dearmor -o /usr/share/keyrings/mongodb-server-keyring.gpg

    **Exécutez la commande suivante pour ajouter la clé publique manquante :

    sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys B00A0BD1E2C63C11
    ou

    **Exécutez cette commande pour importer manuellement la clé :

    wget -qO - https://pgp.mongodb.com/server-5.0.asc | sudo tee /etc/apt/trusted.gpg.d/mongodb-server-5.0.

    Vérifiez que la clé a été ajoutée avec succès :

    gpg --dry-run --quiet --import --import-options import-show /etc/apt/trusted.gpg.d/mongodb-server
  3. Ajouter le dépôt MongoDB:
    Ubuntu :
    echo "deb [signed-by=/usr/share/keyrings/mongodb-server-keyring.gpg] https://repo.mongodb.org/apt/ubuntu $(lsb_release -cs)/mongodb-org/6.0 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-6.0.list
    Debian :
    echo "deb [signed-by=/etc/apt/trusted.gpg.d/mongodb-server-5.0.asc] https://repo.mongodb.org/apt/debian bullseye/mongodb-org/5.0 main" | sudo tee /etc/apt/sources.list.d/mongodb-org-5.0.list
  4. Installez MongoDB:
    sudo apt update
    sudo apt install -y mongodb-org
  5. Démarrer et activer MongoDB:
    sudo systemctl start mongod
    sudo systemctl enable mongod

Pour CentOS/RHEL

  1. Ajouter le dépôt MongoDB:
    sudo tee /etc/yum.repos.d/mongodb-org-6.0.repo <<EOF
    [mongodb-org-6.0]
    name=MongoDB Repository
    baseurl=https://repo.mongodb.org/yum/redhat/$releasever/mongodb-org/6.0/x86_64/
    gpgcheck=1
    enabled=1
    gpgkey=https://www.mongodb.org/static/pgp/server-6.0.asc
    EOF

  2. Installer MongoDB:
    sudo yum install -y mongodb-org
  3. Démarrer et activer MongoDB:
    sudo systemctl start mongod
    sudo systemctl enable mongod

2. Sécuriser MongoDB

Par défaut, MongoDB écoute sur localhost (127.0.0.1). Pour le sécuriser :

Activer l’authentification

  1. Créez un utilisateur admin:
    mongosh
    use admin
    db.createUser({
    user: "admin",
    pwd: "StrongPassword",
    roles: [{ role: "root", db: "admin" }]
    })
  2. Activer l’authentification dans le fichier de configuration de MongoDB :
    sudo nano /etc/mongod.conf

    Trouvez la section security et ajoutez :

    security:
    authorization: enabled
  3. Redémarrez MongoDB:
    sudo systemctl restart mongod

Restreindre l’accès externe

  1. Modifiez MongoDB pour qu’il n’écoute que localhost:
    sudo nano /etc/mongod.conf

    Modifier :

    bindIp : 127. 0.0.1
  2. Utilisez UFW (Ubuntu) ou FirewallD (CentOS) pour n’autoriser que des IP spécifiques:
    sudo ufw allow from YOUR_IP to any port 27017

3. Gestion de MongoDB

Vérifier l’état du service MongoDB

sudo systemctl status mongod

Redémarrer MongoDB

sudo systemctl restart mongod

Arrêter MongoDB

sudo systemctl stop mongod

Permettre à MongoDB de démarrer au démarrage

sudo systemctl enable mongod

4. Gestion des bases de données dans MongoDB

Se connecter à MongoDB

mongosh

Créer une base de données

use mydatabase

Afficher les bases de données

show dbs

Créer une collection

db.createCollection("users")

Insérer des données

db.users.insertOne({ name: "John Doe", age: 30, email: "john@example.com" })

Recherche de données

db.users.find()

Supprimer une base de données

use mydatabase
db.dropDatabase()

5. Sauvegardes et restaurations

Sauvegarde de la base de données MongoDB

mongodump --db=mydatabase --out=/backup/

Restauration de la base de données MongoDB

mongorestore --db=mydatabase /backup/mydatabase/

6. Optimisation des performances

Indexation pour des requêtes plus rapides

db.users.createIndex({ email: 1 })

Surveillance des performances

db.serverStatus()

Limiter l’utilisation de la mémoire

Modifier wiredTigerCacheSizeGB dans /etc/mongod.conf:

storage :
wiredTiger :
engineConfig :
cacheSizeGB : 1

Utiliser la mise en commun des connexions

Modifier le fichier /etc/mongod.conf:

net :
maxIncomingConnections : 1000

7. Journaux et débogage

Afficher les journaux de MongoDB

sudo journalctl -u mongod --no-pager | tail -n 50

Vérifier les journaux d’erreurs

sudo cat /var/log/mongodb/mongod.log

8. Désinstaller MongoDB (si nécessaire)

Pour Ubuntu/Debian

sudo systemctl stop mongod
sudo apt purge -y mongodb-org*
sudo rm -r /var/log/mongodb /var/lib/mongodb

Pour CentOS/RHEL

sudo systemctl stop mongod
sudo yum remove -y mongodb-org*
sudo rm -r /var/log/mongodb /var/lib/mongodb

Conclusion

Gérer MongoDB sur un VPS Linux nécessite une installation correcte, un renforcement de la sécurité et une optimisation des performances. En suivant ces étapes, vous vous assurez que votre base de données MongoDB fonctionne efficacement et en toute sécurité. 🚀

Vous souhaitez obtenir de l’aide sur les scripts d’automatisation pour la gestion de MongoDB ? 😊