MongoDB è un database NoSQL che offre prestazioni elevate, disponibilità elevata e ridimensionamento automatico. Il database NoSQL significa che, a differenza di MySQL o PostgreSQL, non supporta SQL (Structured Query Language) per recuperare o manipolare i dati archiviati.
MongoDB non memorizza i dati nelle tabelle. Invece, memorizza i dati in una struttura "documento" simile a JSON (in MongoDB chiamato BSON). MongoDB è stato introdotto per la prima volta nel 2009, sei anni fa, e attualmente sviluppato da MongoDB MongoDB Inc.
In questo tutorial, ti mostreremo come installare e configurare MongoDB 4.4 sul server CentOS 8. Installeremo MongoDB, modificheremo alcune impostazioni di sistema per correggere alcuni errori su MongoDB, creeremo l'utente amministratore per MongoDB e quindi l'autenticazione MongoDB.
Prerequisiti
- Server CentOS 8
- Privilegi di root
- Comprendere i comandi di base di Linux/CentOS
Cosa faremo?
- Aggiungi repository MongoDB
- Installa MongoDB su CentOS 8
- Correggi alcuni errori di MongoDB
- Crea utente amministratore MongoDB
- Abilita l'autenticazione MongoDB
- Test
Passaggio 1:aggiungi il repository MongoDB
Innanzitutto, accedi al tuo server utilizzando il tuo utente e password SSH, quindi aggiorna tutti i pacchetti all'ultima versione utilizzando il comando seguente.
ssh [email protected]
sudo dnf update
Ora vai nella directory '/etc/yum.repos.d' e crea un nuovo file di repository 'mongodb-4.4.repo' usando l'editor vim.
cd /etc/yum.repos.d/
vim mongodb-4.4.repo
Incolla il seguente repository MongoDB 4.4 al suo interno.
[mongodb-org-4.4]
name=MongoDB Repository
baseurl=https://repo.mongodb.org/yum/redhat/$releasever/mongodb-org/4.4/x86_64/
gpgcheck=1
enabled=1
gpgkey=https://www.mongodb.org/static/pgp/server-4.4.asc
Salva e chiudi.
Quindi, controlla tutti i repository disponibili sul sistema CentOS usando il comando dnf di seguito.
sudo dnf repolist
Di seguito è riportato il risultato che otterrai.
Di conseguenza, il repository MongoDB è stato aggiunto al sistema CentOS 8.
Passaggio 2:installazione del server di database MongoDB NoSQL
Per installare MongoDB NoSQL Database, esegui il comando dnf di seguito.
sudo dnf install -y mongodb-org
Una volta completata l'installazione, avvia il servizio MongoDB e aggiungilo all'avvio del sistema.
systemctl start mongod
systemctl enable mongod
Il servizio MongoDB è attivo e funzionante, verificalo utilizzando il comando seguente.
ss -plnt
systemctl status mongod
Di seguito è riportato il risultato che otterrai.
Come si può vedere, il servizio MongoDB è in esecuzione sulla porta TCP predefinita '27017'.
Passaggio 3:correzione dell'errore MongoDB
A questo punto, il servizio MongoDB è attivo e funzionante sul sistema CentOS 8. E per questo passaggio, miglioreremo la nostra installazione di MongoDB modificando alcune configurazioni di sistema per correggere alcuni errori.
- Disabilita Transparent Huge Pages (THP) usando Tuned
Per aumentare le prestazioni di installazione di MongoDB, dobbiamo disabilitare THP o Transparent Huge Pages sul nostro sistema. E per il sistema CentOS, puoi disabilitare THP tramite la configurazione del profilo ottimizzato.
Crea una nuova directory '/etc/tuned/virtual-guest-no-thp' per il profilo ottimizzato personalizzato denominato 'virtual-guest-no-thp'.
sudo mkdir -p /etc/tuned/virtual-guest-no-thp
Quindi, crea la configurazione 'tuned.conf' nella directory '/etc/tuned/virtual-guest-no-thp/' usando l'editor vim.
vim /etc/tuned/virtual-guest-no-thp/tuned.conf
Incolla la seguente configurazione al suo interno.
[main]
include=virtual-guest
[vm]
transparent_hugepages=never
Salva e chiudi.
Ora attiva il nuovo profilo sintonizzato personalizzato "virtual-guest-no-thp" utilizzando il comando sintonizzato-adm di seguito.
sudo tuned-adm profile virtual-guest-no-thp
Per verificare lo stato THP sullo stato Linux, controllare utilizzando il comando seguente.
cat /sys/kernel/mm/transparent_hugepage/enabled
Ora assicurati di avere '[mai]' risposta come di seguito.
Come si può vedere, le Transparent Huge Pages sul sistema CentOS sono state disabilitate tramite il profilo Tuned.
- Imposta UNIX Ulimit
Ulimits o Limiti utente viene utilizzato per definire la quantità di una risorsa a livello di sistema che un utente può utilizzare. Per migliorare e migliorare le prestazioni di MongoDB, è necessario aumentare le impostazioni ulimit per il servizio MongoDB.
Ora vai nella directory '/etc/security/limits.d/' e crea una nuova configurazione 'monogd.conf' usando l'editor vim.
cd /etc/security/limits.d/
vim mongod.conf
Incolla la seguente configurazione al suo interno.
mongod soft nproc 64000
mongod hard nproc 64000
mongod soft nofile 64000
mongod hard nofile 64000
Salva e chiudi.
Per applicare la nuova configurazione, esegui il comando seguente.
sysctl -p
Ora assicurati di non avere errori e che la configurazione di Ulimit per MongoDB sia stata completata.
- Disattiva avviso MongoDB Cloud Monitoring (opzionale)
Questa fase è facoltativa. Puoi ignorare le informazioni sul servizio MongoDB Cloud Monitoring quando hai effettuato l'accesso alla shell MongoDB.
Per disabilitare questo avviso, accedi alla shell di MongoDB usando il comando "mongo" di seguito.
mongo
Ora esegui la seguente query.
db.disableFreeMonitoring()
Digita 'uscita ' per disconnettersi dalla shell di MongoDB e ora riavviare il server.
sudo reboot
E di conseguenza, l'avviso dei servizi MongoDB Cloud Monitoring è scomparso.
Passaggio 4:crea l'utente amministratore MongoDB
In questo passaggio creeremo l'utente amministratore per MongoDB tramite la shell 'mongo'.
Accedi alla shell di MongoDB usando il comando 'mongo' di seguito.
mongo
Ora passa al database 'admin'.
use admin
Quindi crea il nuovo utente 'admin' con la password 'hakasepasswordformongodbadmin' usando la seguente query.
db.createUser(
{
user: "admin",
pwd: "hakasepasswordformongodbadmin",
roles: [ { role: "userAdminAnyDatabase", db: "admin" } ]
}
)
E l'utente MongoDB è stato creato, controlla tutti gli utenti su MongoDB utilizzando la query seguente.
show users
Di seguito è riportato il risultato che otterrai.
Di conseguenza, è stato creato l'utente amministratore per MongoDB, digita "exit" per disconnettersi dalla shell di MongoDB.
Passaggio 5:abilitazione dell'autenticazione MongoDB
Dopo aver creato l'utente amministratore, abiliteremo l'autenticazione MongoDB per impedire a un altro utente senza privilegi sufficienti di vedere i dati sul database.
Per abilitare l'autenticazione MongoDB, modifica la configurazione '/etc/mongod.conf' usando l'editor vim.
vim /etc/mongod.conf
Decommenta l'opzione 'sicurezza' e aggiungi la configurazione come di seguito.
security
authorization: "enabled"
Salva e chiudi.
Quindi, riavvia il servizio MongoDB per applicare la nuova configurazione.
systemctl restart mongod
Assicurati che non ci siano errori e che l'autenticazione MongoDB sia stata abilitata.
Fase 6 - Test
Per testare la nostra installazione e configurazione dell'autenticazione MongoDB, puoi verificare tramite la shell MongoDB.
Accedi alla shell di MongoDB usando il comando seguente.
mongo
Quindi, passa al database "admin" e mostra tutti gli utenti su MongoDB utilizzando le seguenti query.
use admin
show users
Di seguito è riportato il risultato che otterrai.
Come si può vedere, non sei autorizzato a mostrare l'elenco di tutti gli utenti nel database 'admin'.
Successivamente, autenticati sul server MongoDB utilizzando la seguente query.
db.auth('admin', 'hakasepasswordformongodbadmin')
Ora assicurati di ricevere il numero di risposta '1' , il che significa che l'autenticazione è riuscita.
Successivamente, puoi mostrare e controllare tutti gli utenti disponibili sul tuo server MongoDB utilizzando la query seguente.
show users
E otterrai l'amministratore MongoDB che abbiamo appena creato in cima.
Di conseguenza, l'installazione e la configurazione di MongoDB NoSQL Database Server sul sistema CentOS 8 sono state completate correttamente.