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
  2. 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
  3. 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
  4. Installare MongoDB:
    sudo apt update
    sudo apt install -y mongodb-org
  5. 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? 😊