MongoDB è un open-source, uno dei database orientati ai documenti più popolari (NoSQL). In MongoDB, i dati vengono archiviati in documenti simili a JSON con schemi dinamici a differenza di tabelle e righe in un database relazionale.
MongoDB è progettato pensando sia alla scalabilità che all'agilità degli sviluppatori. È disponibile per Windows, Linux, OS X, Solaris e FreeBSD.
In questo post vedremo come installare MongoDB su CentOS 8 / RHEL 8.
Edizioni MongoDB
MongoDB Inc rilascia due edizioni server di MongoDB per i suoi utenti finali.
-
Server aziendale MongoDB
-
Server della comunità MongoDB
Qui vedremo come installare l'edizione della community MongoDB. Il server della comunità MongoDB è rilasciato sotto Server Side Public License (SSPL).
Aggiungi repository MongoDB
MongoDB Inc fornisce un repository software dedicato per scaricare e installare il database MongoDB.
Aggiungi il repository MongoDB sul tuo sistema.
MongoDB 4.4
cat << EOF > /etc/yum.repos.d/mongodb.repo
[mongodb-org-4.4]
name=MongoDB Repository
baseurl=https://repo.mongodb.org/yum/redhat/8Server/mongodb-org/4.4/x86_64/
gpgcheck=1
enabled=1
gpgkey=https://www.mongodb.org/static/pgp/server-4.4.asc
EOF
MongoDB 4.2
cat << EOF > /etc/yum.repos.d/mongodb.repo
[mongodb-org-4.2]
name=MongoDB Repository
baseurl=https://repo.mongodb.org/yum/redhat/8Server/mongodb-org/4.2/x86_64/
gpgcheck=1
enabled=1
gpgkey=https://www.mongodb.org/static/pgp/server-4.2.asc
EOF
Installa MongoDB
Dopo aver aggiunto il repository MongoDB, utilizzare il comando dnf per installare MongoDB.
dnf install -y mongodb-org
mongob-org (meta pacchetto che viene installato sotto i componenti) | |
---|---|
server-mongodb-org | Pacchetto server |
mongodb-org-mongos | Demone condiviso |
mongodb-org-shell | Interfaccia della riga di comando |
mongodb-org-tools | Strumenti MongoDB (importazione, esportazione, ripristino, dump e altri strumenti) |
SELinux
Per eseguire MongoDB con SELinux abilitato (modalità di applicazione), seguire le istruzioni per personalizzare la politica SELinux per MongoDB. Salta i passaggi seguenti, nel caso in cui tu abbia disabilitato SELinux sul tuo sistema.
Installa il pacchetto checkpolicy con il comando dnf.
dnf install -y checkpolicy
Crea un file di criteri SELinux per consentire al processo MongoDB di accedere al cgroup per determinare la memoria disponibile sul tuo sistema.
cat > mongodb_cgroup_memory.te <<EOF
module mongodb_cgroup_memory 1.0;
require {
type cgroup_t;
type mongod_t;
class dir search;
class file { getattr open read };
}
#============= mongod_t ==============
allow mongod_t cgroup_t:dir search;
allow mongod_t cgroup_t:file { getattr open read };
EOF
Compila e carica il nostro modulo di policy SELinux personalizzato usando i comandi seguenti.
checkmodule -M -m -o mongodb_cgroup_memory.mod mongodb_cgroup_memory.te
semodule_package -o mongodb_cgroup_memory.pp -m mongodb_cgroup_memory.mod
semodule -i mongodb_cgroup_memory.pp
Passaggi successivi all'installazione
Impostazioni Ulimit
Per impostazione predefinita, la maggior parte dei sistemi ha un limite impostato per il numero di processi, file aperti, memoria, ecc. che un particolare utente (fid dell'applicazione) può avere e questi limiti possono causare problemi nel funzionamento di MongoDB.
MongoDB ora fornisce le impostazioni dei limiti consigliate nel file dell'unità systemd. Quindi, non è necessario impostare i limiti manualmente.
Abilita controllo accessi
Se prendi database relazionali come MySQL o PostgreSQL, ecc. viene fornito almeno un livello di autenticazione per il quale gli utenti devono autenticarsi per eseguire attività di database.
Ma, nel caso di MongoDB, non è così. Tutti gli utenti possono accedere a qualsiasi database ed eseguire qualsiasi operazione senza autenticazione.
Per risolvere questo problema, crea prima un utente amministratore per le operazioni quotidiane.
Quindi, dobbiamo abilitare il controllo dell'accesso modificando il file di configurazione di MongoDB.
vi /etc/mongod.conf
Aggiungi le righe sottostanti.
security:
authorization: enabled
Disabilita pagine enormi
Le pagine enormi trasparenti spesso creano problemi di prestazioni per i carichi di lavoro del database. Quindi, MongoDB consiglia di disabilitare le pagine enormi per ottenere le migliori prestazioni.
Crea una directory, posiziona un file di profilo ottimizzato per disabilitare le pagine enormi.
mkdir /etc/tuned/virtual-guest-no-thp
Crea un file.
vi /etc/tuned/virtual-guest-no-thp/tuned.conf
Inserisci le righe sottostanti nel file in grado.
[main]
include=virtual-guest
[vm]
transparent_hugepages=never
Abilita il nostro profilo appena creato.
tuned-adm profile virtual-guest-no-thp
Avvia il servizio MongoDB
Per avviare il servizio MongoDB, esegui:
systemctl start mongod
Per controllare lo stato del servizio MongoDB, esegui:
systemctl status mongod
Output:● mongod.service - Server database MongoDB Caricato:caricato (/usr/lib/systemd/system/mongod.service; abilitato; preimpostazione del fornitore:disabilitato) Attivo:attivo (in esecuzione) da lunedì 10-08-2020 13:10:15 EDT; 11 s fa Documenti:https://docs.mongodb.org/manual Processo:3147 ExecStart=/usr/bin/mongod $OPTIONS (code=exited, status=0/SUCCESS) Processo:3145 ExecStartPre=/usr/bin/chmod 0755 /var/run/mongodb (code=exited, status=0/SUCCESS) Processo:3143 ExecStartPre=/usr/bin/chown mongod:mongod /var/run/mongodb (code=exited, status=0/SU> Process :3141 ExecStartPre=/usr/bin/mkdir -p /var/run/mongodb (code=exited, status=0/SUCCESS) PID principale:3149 (mongod) Memoria:61.1M CGroup:/system.slice/mongod.service └─3149 /usr/bin/mongod -f /etc/mongod.confAug 10 13:10:14 centos8.itzgeek.local systemd[1]:Avvio di MongoDB Database Server...Aug 10 13:10:14 centos8.itzgeek .local mongod[3147]:in procinto di eseguire il fork del processo figlio, in attesa di servire>Aug 10 13:10:14 centos8.itzgeek.local mongod[3147]:forked process:3149Aug 10 13:10:15 centos8.itzgeek.local mongod [3147]:processo figlio avviato correttamente, parent exiti>Aug 10 13:10:15 centos8.itzgeek.local systemd[1]:avviato MongoDB Database Server.Controlla la versione di MongoDB.
mongod --version
Output:db versione v4.4.0Info build:{ "version":"4.4.0", "gitVersion":"563487e100c4215e2dce98d0af2a6a5a2d67c5cf", "openSSLVersion":"OpenSSL 1.1.1c FIPS 28 maggio 2019", "modules" :[], "allocator":"tcmalloc", "environment":{ "distmod":"rhel80", "distarch":"x86_64", "target_arch":"x86_64" }}Usa il comando netstat per verificare se MongoDB è in ascolto sulla porta 27017.
netstat -antup | grep -i 27017
Uscita:tcp 0 0 127.0.0.1:27017 0.0.0.0:* ASCOLTA 6898/mongodLEGGI: comando netstat non trovato su CentOS 7 / RHEL 7 – Quick Fix
Accedi a MongoDB
Connettiti alla shell MongoDB immettendo il seguente comando.
mongo
Output:versione della shell MongoDB v4.4.0connessione a:mongodb://127.0.0.1:27017/?compressors=disabled&gssapiServiceName=mongodbSessione implicita:sessione { "id" :UUID("3ecdceaa-5050-41a3-96e3-8f821362523b ") }Versione del server MongoDB:4.4.0Benvenuto nella shell MongoDB.Per la guida interattiva, digitare "help".Per una documentazione più completa, vedere https://docs.mongodb.com/Questions? Prova i forum della community di sviluppatori MongoDB https://community.mongodb.com>Conclusione
È tutto. Spero che ormai tu abbia MongoDB sul tuo sistema CentOS 8 / RHEL 8. Condividi il tuo feedback nella sezione commenti.