Comment installer MongoDB sur Ubuntu : Un guide complet

LightNode
By LightNode ·

Introduction

MongoDB est une base de données NoSQL populaire et open-source qui offre des performances élevées, une haute disponibilité et une évolutivité facile. Elle est conçue pour stocker et gérer de grands volumes de données non structurées ou semi-structurées, ce qui en fait un excellent choix pour les applications modernes qui traitent des structures de données complexes et en évolution rapide.

Aperçu de MongoDB

MongoDB stocke les données dans des documents flexibles de type JSON appelés BSON (Binary JSON). Cette approche orientée document permet des schémas dynamiques, ce qui signifie que vous pouvez stocker des documents avec différentes structures dans la même collection. Les principales caractéristiques de MongoDB incluent :

  1. Stockage orienté document : Les données sont stockées dans des documents flexibles plutôt que dans des lignes et des colonnes.
  2. Support complet des index : MongoDB prend en charge l'indexation sur n'importe quel attribut.
  3. Réplication et haute disponibilité : MongoDB fournit une réplication intégrée et une reprise automatique.
  4. Partitionnement : MongoDB peut distribuer les données sur plusieurs machines.
  5. Agrégation : Il offre un puissant framework d'agrégation pour l'analyse des données.

Pourquoi utiliser MongoDB sur Ubuntu ?

Ubuntu est l'une des distributions Linux les plus populaires, connue pour sa facilité d'utilisation, ses mises à jour régulières et son fort support communautaire. Il y a plusieurs raisons pour lesquelles MongoDB et Ubuntu forment une excellente combinaison :

  1. Compatibilité : MongoDB est bien pris en charge sur Ubuntu, avec des paquets officiels disponibles.
  2. Performance : La gestion efficace des ressources d'Ubuntu complète les capacités haute performance de MongoDB.
  3. Support à long terme : Les versions Ubuntu LTS (Long Term Support) et MongoDB offrent un support étendu, assurant la stabilité de vos environnements de production.
  4. Large communauté : MongoDB et Ubuntu ont tous deux de grandes communautés actives, facilitant la recherche de solutions aux problèmes potentiels.
  5. Sécurité : Les fonctionnalités de sécurité robustes d'Ubuntu, combinées aux options de sécurité de MongoDB, fournissent une base solide pour protéger vos données.

Prérequis

Avant de commencer le processus d'installation, il est important de s'assurer que votre système répond aux exigences nécessaires et que vous disposez des autorisations appropriées. Passons en revue les prérequis pour l'installation de MongoDB sur Ubuntu.

Versions Ubuntu prises en charge

MongoDB prend en charge les versions LTS (Long Term Support) Ubuntu suivantes :

  • Ubuntu 20.04 LTS (Focal Fossa)
  • Ubuntu 18.04 LTS (Bionic Beaver)
  • Ubuntu 16.04 LTS (Xenial Xerus)

Il est recommandé d'utiliser la dernière version LTS d'Ubuntu pour des performances et une sécurité optimales. Ce guide se concentrera sur Ubuntu 20.04 LTS, mais les étapes devraient être similaires pour les autres versions prises en charge.

Configuration système requise

MongoDB peut fonctionner sur des systèmes avec diverses ressources, mais pour des performances optimales, considérez les recommandations suivantes :

  1. CPU :

    • Minimum : 2 cœurs
    • Recommandé : 4 cœurs ou plus pour une utilisation en production
  2. RAM :

    • Minimum : 4 GB
    • Recommandé : 8 GB ou plus pour une utilisation en production
  3. Stockage :

    • Minimum : 10 GB d'espace libre
    • Recommandé : SSD pour de meilleures performances
  4. Architecture :

    • Système 64 bits (MongoDB ne prend pas en charge les systèmes 32 bits)

Autorisations requises

Pour installer MongoDB, vous aurez besoin des privilèges sudo sur votre système Ubuntu. Cela signifie que vous devez soit être connecté en tant qu'utilisateur root, soit avoir un compte pouvant utiliser sudo pour exécuter des commandes avec les privilèges root.

Pour vérifier si votre utilisateur dispose des privilèges sudo, vous pouvez exécuter la commande suivante dans le terminal :

sudo -v

Si un mot de passe vous est demandé et que la commande s'exécute sans erreur, votre utilisateur dispose des privilèges sudo.

Mise à jour du système

Avant d'installer MongoDB, il est crucial de s'assurer que votre système Ubuntu est à jour. Cette étape est importante pour plusieurs raisons :

  1. Sécurité : Les mises à jour incluent souvent des correctifs de sécurité importants.
  2. Stabilité : Les dernières mises à jour peuvent corriger des bugs et améliorer la stabilité du système.
  3. Compatibilité : Avoir les derniers paquets peut prévenir d'éventuels problèmes de compatibilité lors de l'installation de MongoDB.

Importance des mises à jour système

Maintenir votre système à jour est un aspect fondamental de la maintenance d'une installation Ubuntu saine et sécurisée. Cela garantit que vous disposez des derniers correctifs de sécurité, corrections de bugs et améliorations de fonctionnalités. C'est particulièrement important lorsque vous êtes sur le point d'installer un nouveau logiciel comme MongoDB, car cela aide à prévenir les conflits et garantit que vous travaillez avec les versions les plus récentes et compatibles de tous les composants du système.

Commandes pour mettre à jour Ubuntu

Pour mettre à jour votre système Ubuntu, suivez ces étapes :

  1. Ouvrez votre terminal. Vous pouvez le faire en appuyant sur Ctrl + Alt + T ou en recherchant "Terminal" dans le tableau de bord Ubuntu.

  2. D'abord, mettez à jour la liste des paquets pour les mises à niveau et les nouvelles installations de paquets. Exécutez la commande suivante :

    sudo apt update
    

    Cette commande actualise la liste des paquets disponibles et leurs versions, mais n'installe ni ne met à niveau aucun paquet.

  3. Après la mise à jour, mettez à niveau les paquets installés vers leurs dernières versions :

    sudo apt upgrade
    

    Cette commande vous montrera une liste des paquets qui sont sur le point d'être mis à niveau. Examinez la liste et appuyez sur 'Y' puis 'Entrée' pour confirmer et procéder à la mise à niveau.

Vérification de la mise à jour

Après le redémarrage de votre système, vous pouvez vérifier que la mise à jour a réussi en vérifiant la version d'Ubuntu :

lsb_release -a

Cette commande affichera les informations sur votre distribution Ubuntu, y compris le numéro de version.

Installation de MongoDB

Maintenant que votre système est à jour, nous pouvons procéder à l'installation de MongoDB. Nous allons parcourir le processus étape par étape, y compris l'ajout du dépôt MongoDB, l'importation de la clé publique et l'installation des paquets MongoDB.

Ajout du dépôt MongoDB

MongoDB n'est pas disponible dans les dépôts Ubuntu par défaut. Par conséquent, nous devons ajouter le dépôt officiel de MongoDB à notre système.

  1. D'abord, ajoutons le dépôt MongoDB à notre liste de sources. Créez un fichier de liste pour MongoDB en utilisant la commande suivante :

    echo "deb [ arch=amd64,arm64 ] https://repo.mongodb.org/apt/ubuntu focal/mongodb-org/5.0 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-5.0.list
    

    Note : Cette commande est pour Ubuntu 20.04 (Focal Fossa) et MongoDB 5.0. Si vous utilisez une version différente d'Ubuntu ou souhaitez une version différente de MongoDB, vous devrez ajuster la commande en conséquence.

Importation de la clé publique

  1. Pour garantir l'authenticité des paquets que nous allons installer, nous devons importer la clé GPG publique de MongoDB :

    wget -qO - https://www.mongodb.org/static/pgp/server-5.0.asc | sudo apt-key add -
    

    Si la commande a réussi, vous verrez la sortie "OK".

Installation des paquets MongoDB

  1. Après avoir ajouté le dépôt et importé la clé, mettez à jour la liste des paquets :

    sudo apt update
    
  2. Maintenant, installez MongoDB :

    sudo apt install -y mongodb-org
    

    Cette commande installera les paquets suivants :

    • mongodb-org (Un métapaquet qui installe automatiquement les quatre paquets composants listés ci-dessous)
    • mongodb-org-server (Le démon mongod et les scripts de configuration et d'initialisation associés)
    • mongodb-org-mongos (Le démon mongos)
    • mongodb-org-shell (Le shell mongo)
    • mongodb-org-tools (Contient plusieurs outils MongoDB pour l'importation et l'exportation de données, les statistiques et d'autres utilitaires)

Vérification de l'installation

  1. Une fois l'installation terminée, vous pouvez vérifier la version de MongoDB en exécutant :

    mongod --version
    

    Cela devrait afficher la version de MongoDB que vous venez d'installer.

  2. MongoDB devrait démarrer automatiquement après l'installation. Vous pouvez vérifier son statut avec :

    sudo systemctl status mongod
    

    Si MongoDB est en cours d'exécution, vous devriez voir une sortie indiquant que le service est actif (running).

  3. Si MongoDB n'est pas en cours d'exécution, vous pouvez le démarrer avec :

    sudo systemctl start mongod
    
  4. Pour vous assurer que MongoDB démarre automatiquement au redémarrage du système, exécutez :

    sudo systemctl enable mongod
    

Configuration de MongoDB

Après avoir installé MongoDB avec succès, l'étape suivante consiste à le configurer selon vos besoins. Dans cette section, nous allons couvrir la compréhension du fichier de configuration, les paramètres de configuration de base et comment sécuriser MongoDB en activant l'authentification.

Comprendre le fichier de configuration

Le fichier de configuration principal de MongoDB est mongod.conf. Sur Ubuntu, ce fichier se trouve généralement à /etc/mongod.conf. Ce fichier utilise le format YAML pour les paramètres de configuration.

Pour voir le contenu de ce fichier, vous pouvez utiliser la commande suivante :

sudo nano /etc/mongod.conf

Paramètres de configuration de base

Passons en revue certains des paramètres de configuration clés :

  1. bindIp : Par défaut, il est défini sur 127.0.0.1, ce qui signifie que MongoDB n'acceptera que les connexions depuis localhost. Si vous devez accepter des connexions depuis des hôtes distants, vous devrez modifier cela.

  2. port : Le port par défaut est 27017. Vous pouvez le modifier si nécessaire, mais n'oubliez pas de mettre à jour vos règles de pare-feu en conséquence.

  3. dbPath : Ceci spécifie où MongoDB stocke ses fichiers de données. Par défaut, c'est /var/lib/mongodb.

  4. logPath : Ceci spécifie où MongoDB écrit ses journaux. Par défaut, c'est /var/log/mongodb/mongod.log.

Voici un exemple de à quoi cela pourrait ressembler dans votre fichier de configuration :

# network interfaces
net:
  port: 27017
  bindIp: 127.0.0.1

# where to write logging data
systemLog:
  destination: file
  logAppend: true
  path: /var/log/mongodb/mongod.log

# where and how to store data
storage:
  dbPath: /var/lib/mongodb

Sécurisation de MongoDB (Activation de l'authentification)

Par défaut, MongoDB ne nécessite pas d'authentification. Il est crucial de l'activer pour les environnements de production.

  1. D'abord, démarrez le shell MongoDB :

    mongo
    
  2. Passez à la base de données admin :

    use admin
    
  3. Créez un utilisateur administrateur :

    db.createUser(
      {
        user: "adminUser",
        pwd: "securePassword",
        roles: [ { role: "userAdminAnyDatabase", db: "admin" } ]
      }
    )
    

    Remplacez "adminUser" et "securePassword" par votre nom d'utilisateur et mot de passe choisis.

  4. Quittez le shell MongoDB :

    exit
    
  5. Maintenant, modifiez le fichier de configuration MongoDB :

    sudo nano /etc/mongod.conf
    
  6. Ajoutez ou modifiez la section sécurité pour activer l'authentification :

    security:
      authorization: enabled
    
  7. Sauvegardez le fichier et quittez l'éditeur.

  8. Redémarrez MongoDB pour que les changements prennent effet :

    sudo systemctl restart mongod
    

Démarrage et arrêt de MongoDB

La gestion du service MongoDB est une partie cruciale de l'administration de la base de données. Dans cette section, nous allons couvrir comment démarrer, arrêter, redémarrer et vérifier l'état du service MongoDB sur Ubuntu.

Démarrage du service MongoDB

Si MongoDB n'est pas déjà en cours d'exécution, vous pouvez le démarrer en utilisant la commande suivante :

sudo systemctl start mongod

Cette commande indique à systemd (le gestionnaire de système et de services pour Ubuntu) de démarrer le service MongoDB.

Arrêt du service MongoDB

Si vous devez arrêter MongoDB, peut-être pour maintenance ou modifications de configuration, utilisez cette commande :

sudo systemctl stop mongod

Cela arrêtera proprement le service MongoDB.

Redémarrage du service MongoDB

Si vous avez fait des modifications au fichier de configuration MongoDB ou si vous voulez simplement redémarrer le service, vous pouvez utiliser :

sudo systemctl restart mongod

Cette commande arrête puis redémarre effectivement le service.

Vérification de l'état du service

Pour vérifier l'état actuel du service MongoDB, utilisez :

sudo systemctl status mongod

Cela affichera des informations sur le service MongoDB, y compris s'il est actif (en cours d'exécution) ou inactif (arrêté), depuis combien de temps il fonctionne, et les entrées de journal récentes.

Vérification des journaux MongoDB

Si vous devez résoudre des problèmes ou simplement surveiller l'activité de MongoDB, vous pouvez consulter son fichier journal :

sudo tail -f /var/log/mongodb/mongod.log

Cette commande vous montrera les dernières lignes du fichier journal et se mettra à jour en temps réel lorsque de nouvelles entrées de journal sont ajoutées. Utilisez Ctrl+C pour quitter l'affichage du journal.

Connexion à MongoDB

Maintenant que MongoDB est installé, configuré et en cours d'exécution, apprenons à s'y connecter et à effectuer quelques opérations de base. Nous utiliserons le shell MongoDB, qui est une interface JavaScript interactive pour MongoDB.

Utilisation du shell MongoDB

  1. Pour démarrer le shell MongoDB, ouvrez un terminal et tapez :

    mongo
    

    Si vous avez activé l'authentification, vous devrez vous connecter avec un nom d'utilisateur et un mot de passe :

    mongo -u adminUser -p --authenticationDatabase admin
    

    On vous demandera d'entrer votre mot de passe.

  2. Une fois connecté, vous verrez l'invite du shell MongoDB :

    MongoDB shell version v5.0.x
    connecting to: mongodb://127.0.0.1:27017
    MongoDB server version: 5.0.x
    >
    

Création d'une base de données et d'une collection

  1. Pour créer une nouvelle base de données (ou passer à une base existante), utilisez la commande use :

    use maNouvelleBDD
    

    MongoDB créera la base de données si elle n'existe pas et s'y connectera.

  2. Pour créer une nouvelle collection, vous pouvez simplement y insérer un document :

    db.maCollection.insertOne({ nom: "Jean Dupont", age: 30, ville: "Paris" })
    

    Cela crée une collection nommée maCollection et y insère un document.

Opérations CRUD de base

Effectuons quelques opérations de base de Création, Lecture, Mise à jour et Suppression (CRUD) :

  1. Créer (Insérer) plus de documents :

    db.maCollection.insertMany([
      { nom: "Marie Martin", age: 25, ville: "Lyon" },
      { nom: "Pierre Durand", age: 35, ville: "Marseille" }
    ])
    
  2. Lire (Interroger) les documents :

    // Trouver tous les documents dans la collection
    db.maCollection.find()
    
    // Trouver les documents qui correspondent à un critère spécifique
    db.maCollection.find({ ville: "Paris" })
    
    // Trouver un seul document
    db.maCollection.findOne({ nom: "Jean Dupont" })
    
  3. Mettre à jour les documents :

    // Mettre à jour un document
    db.maCollection.updateOne(
      { nom: "Jean Dupont" },
      { $set: { age: 31 } }
    )
    
    // Mettre à jour plusieurs documents
    db.maCollection.updateMany(
      { ville: "Paris" },
      { $set: { pays: "France" } }
    )
    
  4. Supprimer des documents :

    // Supprimer un document
    db.maCollection.deleteOne({ nom: "Marie Martin" })
    
    // Supprimer plusieurs documents
    db.maCollection.deleteMany({ age: { $lt: 30 } })
    

Activation de l'accès distant (Optionnel)

Par défaut, MongoDB est configuré pour n'autoriser que les connexions depuis localhost. Cependant, dans certains scénarios, vous pourriez avoir besoin d'accéder à votre instance MongoDB depuis une machine distante. Cette section vous guidera à travers le processus d'activation de l'accès distant à votre serveur MongoDB.

Modification de la configuration pour l'accès distant

  1. D'abord, ouvrez le fichier de configuration MongoDB :

    sudo nano /etc/mongod.conf
    
  2. Trouvez la section net dans le fichier de configuration. Elle devrait ressembler à ceci :

    net:
      port: 27017
      bindIp: 127.0.0.1
    
  3. Modifiez la valeur bindIp pour autoriser les connexions depuis toutes les adresses IP :

    net:
      port: 27017
      bindIp: 0.0.0.0
    

    Cela indique à MongoDB d'écouter les connexions sur toutes les interfaces IP disponibles.

Configuration des paramètres du pare-feu

Si vous avez un pare-feu activé (comme UFW sur Ubuntu), vous devez ouvrir le port MongoDB (27017 par défaut) pour autoriser les connexions entrantes.

  1. Pour ouvrir le port en utilisant UFW :

    sudo ufw allow 27017
    
  2. Vous pouvez vérifier l'état de UFW avec :

    sudo ufw status
    

Considérations de sécurité

L'activation de l'accès distant à votre serveur MongoDB introduit des risques potentiels de sécurité. Voici quelques mesures de sécurité importantes à considérer :

  1. Utiliser une authentification forte : Assurez-vous d'avoir activé l'authentification et d'utiliser des mots de passe forts et uniques pour tous les utilisateurs de la base de données.

  2. Activer SSL/TLS : Configurez MongoDB pour utiliser SSL/TLS pour toutes les connexions entrantes afin de chiffrer les données en transit.

  3. Utiliser un VPN ou un tunnel SSH : Au lieu d'exposer MongoDB directement à Internet, envisagez d'utiliser un VPN ou un tunnel SSH pour l'accès distant.

  4. Mettre en place une liste blanche d'IP : Si possible, configurez votre pare-feu pour n'autoriser les connexions que depuis des adresses IP ou des plages spécifiques.

  5. Maintenir MongoDB à jour : Mettez régulièrement à jour MongoDB vers la dernière version pour bénéficier des correctifs de sécurité les plus récents.

Sauvegarde et restauration MongoDB

La sauvegarde de vos données est un aspect crucial de la gestion de base de données. Elle aide à protéger contre la perte de données due à une défaillance matérielle, une erreur humaine ou d'autres circonstances imprévues. Dans cette section, nous allons couvrir comment créer des sauvegardes de vos bases de données MongoDB et comment restaurer à partir de ces sauvegardes.

Création de sauvegardes de base de données

MongoDB fournit deux outils principaux pour créer des sauvegardes : mongodump et mongodump.

Utilisation de mongodump

mongodump est un utilitaire qui crée une exportation binaire du contenu d'une base de données.

  1. Pour sauvegarder toutes les bases de données :

    mongodump --out /chemin/vers/repertoire/sauvegarde
    
  2. Pour sauvegarder une base de données spécifique :

    mongodump --db nom_base_donnees --out /chemin/vers/repertoire/sauvegarde
    
  3. Si vous avez activé l'authentification, utilisez :

    mongodump --username votre_utilisateur --password votre_mot_de_passe --authenticationDatabase admin --out /chemin/vers/repertoire/sauvegarde
    

Restauration depuis les sauvegardes

Pour restaurer vos données, vous pouvez utiliser l'utilitaire mongorestore.

Restauration depuis mongodump

  1. Pour restaurer toutes les bases de données :

    mongorestore /chemin/vers/repertoire/sauvegarde
    
  2. Pour restaurer une base de données spécifique :

    mongorestore --db nom_base_donnees /chemin/vers/repertoire/sauvegarde/nom_base_donnees
    
  3. Si vous avez l'authentification activée :

    mongorestore --username votre_utilisateur --password votre_mot_de_passe --authenticationDatabase admin /chemin/vers/repertoire/sauvegarde
    

Meilleures pratiques pour les sauvegardes MongoDB

  1. Sauvegardes régulières : Planifiez des sauvegardes régulières, avec une fréquence dépendant de la fréquence de modification de vos données.

  2. Stockage hors site : Stockez les sauvegardes dans un endroit différent de votre base de données principale pour protéger contre les catastrophes physiques.

  3. Vérification des sauvegardes : Testez régulièrement vos sauvegardes en effectuant des restaurations de test pour vous assurer qu'elles fonctionnent correctement.

  4. Récupération à un instant précis : Pour les environnements de production, envisagez d'utiliser l'oplog de MongoDB pour la récupération à un instant précis.

  5. Compression : Utilisez la compression pour réduire la taille des sauvegardes, particulièrement pour les grandes bases de données.

    mongodump --gzip --out /chemin/vers/repertoire/sauvegarde
    

Mise à niveau de MongoDB

Maintenir votre installation MongoDB à jour est crucial pour la sécurité, les performances et l'accès aux nouvelles fonctionnalités. Cette section vous guidera à travers le processus de mise à niveau de MongoDB sur votre système Ubuntu.

Vérification de la version actuelle

Avant la mise à niveau, il est important de savoir quelle version de MongoDB vous utilisez actuellement. Vous pouvez vérifier cela en exécutant :

mongod --version

Étapes pour mettre à niveau MongoDB

  1. Mettre à jour la liste des paquets : D'abord, mettez à jour la liste des paquets de votre système pour vous assurer d'avoir les dernières informations sur les paquets disponibles :

    sudo apt update
    
  2. Sauvegarder vos données : Avant d'effectuer une mise à niveau, il est crucial de sauvegarder vos données. Référez-vous à la section précédente sur les sauvegardes pour des instructions détaillées.

  3. Arrêter le service MongoDB :

    sudo systemctl stop mongod
    
  4. Mettre à jour les paquets MongoDB :

    sudo apt upgrade mongodb-org
    

    Cette commande mettra à niveau MongoDB vers la dernière version disponible dans le dépôt que vous avez ajouté.

  5. Démarrer le service MongoDB :

    sudo systemctl start mongod
    
  6. Vérifier la nouvelle version : Après la mise à niveau, vérifiez que la nouvelle version est correctement installée :

    mongod --version
    

Dépannage des problèmes courants

Même avec une configuration et une maintenance soigneuses, vous pouvez rencontrer des problèmes avec votre installation MongoDB. Cette section couvre certains problèmes courants et leurs solutions.

Problèmes de permissions

  1. Problème : Erreurs "Permission denied" lors de l'accès à MongoDB.

    Solution :

    • Assurez-vous que le répertoire de données MongoDB a les bonnes permissions :
      sudo chown -R mongodb:mongodb /var/lib/mongodb
      
    • Vérifiez les permissions du fichier journal MongoDB :
      sudo chown mongodb:mongodb /var/log/mongodb/mongod.log
      
  2. Problème : Impossible d'accéder à MongoDB avec votre utilisateur Ubuntu.

    Solution :

    • Ajoutez votre utilisateur au groupe MongoDB :
      sudo usermod -aG mongodb $USER
      
    • Déconnectez-vous et reconnectez-vous pour que les changements prennent effet.

Problèmes de connexion

  1. Problème : Erreur "Connection refused".

    Solution :

    • Vérifiez si MongoDB est en cours d'exécution :
      sudo systemctl status mongod
      
    • S'il n'est pas en cours d'exécution, démarrez-le :
      sudo systemctl start mongod
      
    • Assurez-vous que MongoDB écoute sur la bonne adresse dans mongod.conf :
      net:
        port: 27017
        bindIp: 127.0.0.1
      
  2. Problème : Impossible de se connecter à distance.

    Solution :

    • Vérifiez si MongoDB est lié à toutes les interfaces (0.0.0.0) dans mongod.conf.
    • Assurez-vous que votre pare-feu autorise les connexions sur le port 27017.
    • Vérifiez que l'authentification est correctement configurée si vous l'utilisez.

Problèmes de performance

  1. Problème : Requêtes lentes ou performances globales médiocres.

    Solution :

    • Utilisez la méthode explain() pour analyser les performances des requêtes :
      db.collection.find(<query>).explain("executionStats")
      
    • Assurez-vous d'avoir une indexation appropriée :
      db.collection.createIndex({ field: 1 })
      
    • Vérifiez les ressources système (CPU, RAM, E/S disque) pour les goulots d'étranglement.

Meilleures pratiques et considérations de sécurité

La mise en œuvre des meilleures pratiques et la priorisation de la sécurité sont cruciales pour maintenir une installation MongoDB robuste et sécurisée.

Recommandations de sécurité

  1. Activer l'authentification :

    • Toujours utiliser l'authentification dans les environnements de production.
    • Créer des comptes utilisateurs individuels avec des rôles et privilèges spécifiques.
    use admin
    db.createUser(
      {
        user: "adminUser",
        pwd: "motDePasseSecurise",
        roles: [ { role: "userAdminAnyDatabase", db: "admin" } ]
      }
    )
    
  2. Activer le contrôle d'accès :

    • Définir authorization: enabled dans votre fichier mongod.conf.
  3. Utiliser TLS/SSL pour le chiffrement :

    • Configurer MongoDB pour utiliser TLS/SSL pour toutes les connexions réseau.
    • Dans mongod.conf :
      net:
        ssl:
          mode: requireSSL
          PEMKeyFile: /chemin/vers/mongodb.pem
      
  4. Implémentation de la sécurité réseau :

    • Utiliser des pare-feu pour restreindre l'accès aux ports MongoDB.
    • Envisager l'utilisation d'un VPN pour l'accès à distance.

Conseils d'optimisation des performances

  1. Indexation appropriée :

    • Créer des index pour supporter vos requêtes :
      db.collection.createIndex({ champ: 1 })
      
    • Utiliser la méthode explain() pour analyser les performances des requêtes.
  2. Utiliser une Write Concern appropriée :

    • Équilibrer entre sécurité des données et performance :
      db.collection.insertOne({ ... }, { writeConcern: { w: 1, j: true } })
      
  3. Optimiser la conception du schéma :

    • Concevoir votre schéma pour supporter vos requêtes les plus fréquentes.
    • Envisager d'intégrer les données liées pour les informations fréquemment accédées.

Surveillance et journalisation

  1. Configuration de la surveillance :

    • Surveiller les métriques clés comme les ops/seconde, les connexions et l'utilisation de la mémoire.
  2. Configuration de la journalisation appropriée :

    • Activer la journalisation pour les requêtes lentes :
      operationProfiling:
        slowOpThresholdMs: 100
        mode: slowOp
      

Installer MongoDB sur Ubuntu

Foire Aux Questions (FAQ)

Voici quelques questions fréquemment posées sur l'installation et l'utilisation de MongoDB sur Ubuntu :

Q : Comment puis-je savoir quelle version de MongoDB j'utilise ?

R : Vous pouvez utiliser la commande suivante dans le terminal :

mongod --version

Ou, si vous êtes déjà dans le shell MongoDB :

db.version()

Q : Puis-je avoir plusieurs versions de MongoDB installées sur le même système Ubuntu ?

R : Bien que ce soit possible, ce n'est généralement pas recommandé car cela peut conduire à des conflits. Si vous devez exécuter plusieurs versions, envisagez d'utiliser des conteneurs Docker pour l'isolation.

Q : Comment changer le mot de passe d'un utilisateur MongoDB ?

R : Vous pouvez changer le mot de passe en utilisant la commande suivante dans le shell MongoDB :

db.changeUserPassword("nomUtilisateur", "nouveauMotDePasse")

Q : Comment activer l'accès à distance à mon serveur MongoDB ?

R : Vous devez modifier le bindIp dans votre fichier mongod.conf à 0.0.0.0, vous assurer que votre pare-feu autorise les connexions sur le port 27017, et redémarrer MongoDB. Cependant, assurez-vous de mettre en place des mesures de sécurité appropriées avant de le faire.

Q : Quelle est la différence entre les éditions MongoDB Community et Enterprise ?

R : MongoDB Community est gratuit et open-source, tandis qu'Enterprise offre des fonctionnalités supplémentaires comme l'authentification LDAP, l'audit et les moteurs de stockage chiffrés. Pour la plupart des utilisateurs, l'édition Community est suffisante.

Q : Comment sauvegarder ma base de données MongoDB ?

R : Vous pouvez utiliser l'utilitaire mongodump pour créer une exportation binaire de votre base de données :

mongodump --out /chemin/vers/repertoire/sauvegarde

Q : Comment améliorer les performances de MongoDB ?

R : Voici quelques moyens d'améliorer les performances :

  • Indexation appropriée
  • Utilisation de write concerns appropriées
  • Optimisation de la conception du schéma
  • S'assurer d'avoir des ressources système adéquates (particulièrement la RAM)
  • Maintenance régulière (comme l'exécution d'opérations de compactage et de réparation)

Q : Que faire si MongoDB ne démarre pas ?

R : Vérifiez le fichier journal MongoDB (généralement à /var/log/mongodb/mongod.log) pour les messages d'erreur. Les problèmes courants incluent les problèmes de permissions, les conflits de ports ou les fichiers de données corrompus.

Q : Comment se connecter à MongoDB depuis un langage de programmation ?

R : La plupart des langages de programmation ont des pilotes MongoDB officiels ou supportés par la communauté. Par exemple, en Python, vous utiliseriez pymongo :

from pymongo import MongoClient
client = MongoClient('mongodb://localhost:27017/')

Q : Est-il sûr d'utiliser MongoDB sans authentification en développement ?

R : Bien que ce soit possible, il est généralement recommandé d'utiliser toujours l'authentification, même dans les environnements de développement. Cela aide à s'assurer que vos pratiques de développement s'alignent avec les exigences de sécurité en production.

Q : À quelle fréquence dois-je sauvegarder mes bases de données MongoDB ?

R : La fréquence des sauvegardes dépend de votre cas d'utilisation spécifique et de la fréquence de modification de vos données. Pour les applications critiques, envisagez des sauvegardes continues ou au moins quotidiennes.

Q : Puis-je changer le port par défaut (27017) qu'utilise MongoDB ?

R : Oui, vous pouvez changer le port par défaut dans le fichier mongod.conf :

net:
  port: 27018

N'oubliez pas de redémarrer MongoDB après avoir fait ce changement.