Come gestire MongoDB su Linux?

Popular:
MIGLIORA LA TUA CONFIGURAZIONE DEL SERVER! APPLICA AVA E LANCIA CON UN 15% DI SCONTO
USA IL CODICE PROMO:

La gestione di MongoDB su un VPS Linux comporta l’installazione, la configurazione, la sicurezza e l’ottimizzazione delle prestazioni.

1. Installazione di MongoDB su VPS Linux

MongoDB può essere installato utilizzando gestori di pacchetti come apt (per Debian/Ubuntu) o yum (per CentOS/RHEL).

Per Ubuntu/Debian

  1. Aggiornare l’elenco dei pacchetti:
    sudo apt update
sudo apt upgrade -y
  • Importare la chiave GPG di MongoDB:
    curl -fsSL https://www.mongodb.org/static/pgp/server-6.0.asc | sudo gpg --dearmor -o /usr/share/keyrings/mongodb-server-keyring.gpg
  • **Eseguire il seguente comando per aggiungere la chiave pubblica mancante:

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

    **Eseguire questo comando per importare manualmente la chiave:

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

    Verificare se la chiave è stata aggiunta con successo:

    gpg --dry-run --quiet --import --import-options import-show /etc/apt/trusted.gpg.d/mongodb-server
  • Aggiungere il repository 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
  • Installare MongoDB:
    sudo apt update
    sudo apt install -y mongodb-org
  • Avviare e abilitare MongoDB:
    sudo systemctl start mongod
    sudo systemctl enable mongod
  • Per CentOS/RHEL

    1. Aggiungere il repository MongoDB:
      sudo tee /etc/yum.repos.d/mongodb-org-6.0.repo <<EOF
      [mongodb-org-6.0]
      nome=repository MongoDB
      baseurl=https://repo.mongodb.org/yum/redhat/$releasever/mongodb-org/6.0/x86_64/
      gpgcheck=1
      abilitato=1
      gpgkey=https://www.mongodb.org/static/pgp/server-6.0.asc
      EOF
    2. Installare MongoDB:
      sudo yum install -y mongodb-org
    3. Avviare e abilitare MongoDB:
      sudo systemctl start mongod
      sudo systemctl enable mongod

    2. Proteggere MongoDB

    Per impostazione predefinita, MongoDB è in ascolto su localhost (127.0.0.1). Per proteggerlo:

    Abilitare l’autenticazione

    1. Creare un utente amministratore:
      mongosh
      use admin
      db.createUser({
      user: "admin",
      pwd: "StrongPassword",
      roles: [{ role: "root", db: "admin" }]
      })
    2. Abilitare l’autenticazione nel file di configurazione di MongoDB:
      sudo nano /etc/mongod.conf

      Trovare la sezione sicurezza e aggiungere:

      security:
      authorization: enabled
    3. Riavviare MongoDB:
      sudo systemctl restart mongod

    Limitare l’accesso esterno

    1. Modificare MongoDB per ascoltare solo localhost:
      sudo nano /etc/mongod.conf

      Modificare:

      bindIp: 127. 0.0.1
    2. Utilizzare UFW (Ubuntu) o FirewallD (CentOS) per consentire solo IP specifici:
      sudo ufw allow from YOUR_IP to any port 27017

    3. Gestire MongoDB

    Controllare lo stato del servizio MongoDB

    sudo systemctl status mongod

    Riavviare MongoDB

    sudo systemctl restart mongod

    Arrestare MongoDB

    sudo systemctl stop mongod

    Abilitare l’avvio di MongoDB all’avvio

    sudo systemctl enable mongod

    4. Gestione dei database in MongoDB

    Connettersi a MongoDB

    mongosh

    Creare un database

    use mydatabase

    Mostra database

    show dbs

    Creare una raccolta

    db.createCollection("users")

    Inserire i dati

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

    Trova i dati

    db.users.find()

    Cancellare un database

    use mydatabase
    db.dropDatabase()

    5. Backup e ripristino

    Backup del database MongoDB

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

    Ripristino del database MongoDB

    mongorestore --db=mydatabase /backup/mydatabase/

    6. Ottimizzazione delle prestazioni

    Indicizzazione per query più veloci

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

    Monitoraggio delle prestazioni

    db.serverStatus()

    Limitare l’uso della memoria

    Modificare wiredTigerCacheSizeGB in /etc/mongod.conf:

    storage:
    wiredTiger:
    engineConfig:
    cacheSizeGB: 1

    Utilizzare il pool di connessioni

    Modificare /etc/mongod.conf:

    net:
    maxIncomingConnections: 1000

    7. Registri e debug

    Visualizzare i log di MongoDB

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

    Controllare i log degli errori

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

    8. Disinstallare MongoDB (se necessario)

    Per Ubuntu/Debian

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

    Per CentOS/RHEL

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

    Conclusione

    La gestione di MongoDB su un VPS Linux richiede una corretta installazione, un rafforzamento della sicurezza e un’ottimizzazione delle prestazioni. Seguendo questi passaggi, vi assicurerete che il vostro database MongoDB funzioni in modo efficiente e sicuro. 🚀

    Volete aiuto con gli script di automazione per la gestione di MongoDB? 😊