MongoDB je open-source, jedna z nejpopulárnějších databází orientovaných na dokumenty (NoSQL). V MongoDB jsou data uložena v dokumentech typu JSON s dynamickými schématy na rozdíl od tabulek a řádků v relační databázi.
MongoDB je navržen s ohledem jak na škálovatelnost, tak na agilitu vývojáře. Je k dispozici pro Windows, Linux, OS X, Solaris a FreeBSD.
V tomto příspěvku uvidíme, jak nainstalovat MongoDB na CentOS 8 / RHEL 8.
Vydání MongoDB
MongoDB Inc vydává dvě serverové edice MongoDB pro své koncové uživatele.
-
MongoDB Enterprise Server
-
Komunitní server MongoDB
Zde uvidíme, jak nainstalovat komunitní vydání MongoDB. Komunitní server MongoDB je vydán pod licencí Server Side Public License (SSPL).
Přidat úložiště MongoDB
MongoDB Inc poskytuje vyhrazené softwarové úložiště pro stahování a instalaci databáze MongoDB.
Přidejte úložiště MongoDB do svého systému.
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
Instalovat MongoDB
Jakmile přidáte úložiště MongoDB, použijte k instalaci MongoDB příkaz dnf.
dnf install -y mongodb-org
mongob-org (balíček metadat, který instaluje níže uvedené komponenty) | |
---|---|
mongodb-org-server | Serverový balíček |
mongodb-org-mongos | Sdílený démon |
mongodb-org-shell | Rozhraní příkazového řádku |
mongodb-org-tools | Nástroje MongoDB (Import, Export, Restore, Dump a další nástroje) |
SELinux
Chcete-li spustit MongoDB s povoleným SELinux (režim vynucení), postupujte podle pokynů pro přizpůsobení zásad SELinux pro MongoDB. Přeskočte níže uvedené kroky, pokud jste na svém systému zakázali SELinux.
Nainstalujte balíček checkpolicy pomocí příkazu dnf.
dnf install -y checkpolicy
Vytvořte soubor zásad SELinux, který umožní procesu MongoDB přistupovat k cgroup za účelem zjištění dostupné paměti ve vašem systému.
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
Zkompilujte a načtěte náš vlastní modul zásad SELinux pomocí níže uvedených příkazů.
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
Postup po instalaci
Nastavení Ulimit
Ve výchozím nastavení má většina systémů nastaven limit pro počet procesů, otevřených souborů, paměti atd., které může mít konkrétní uživatel (aplikace fid), a tyto limity mohou způsobovat problémy v provozu MongoDB.
MongoDB nyní poskytuje doporučená nastavení limitů v souboru systemd unit. Takže limity nemusíme nastavovat ručně.
Povolit řízení přístupu
Pokud si vezmete relační databáze jako MySQL nebo PostgreSQL atd., přichází s alespoň určitou úrovní autentizace, pro kterou se uživatelé potřebují autentizovat, aby mohli provádět databázové aktivity.
Ale v případě MongoDB tomu tak není. Všichni uživatelé mohou přistupovat k jakékoli databázi a provádět jakékoli operace bez ověření.
Chcete-li tento problém vyřešit, nejprve vytvořte administrátora pro každodenní provoz.
Poté musíme povolit řízení přístupu úpravou konfiguračního souboru MongoDB.
vi /etc/mongod.conf
Přidejte níže uvedené řádky.
security:
authorization: enabled
Zakázat velké stránky
Transparentní velké stránky často způsobují problémy s výkonem databázových úloh. MongoDB tedy doporučuje deaktivovat velké stránky pro nejlepší výkon.
Vytvořte adresář a umístěte soubor vyladěného profilu, abyste zakázali velké stránky.
mkdir /etc/tuned/virtual-guest-no-thp
Vytvořte soubor.
vi /etc/tuned/virtual-guest-no-thp/tuned.conf
Umístěte níže uvedené řádky do schopného souboru.
[main]
include=virtual-guest
[vm]
transparent_hugepages=never
Povolte náš nově vytvořený profil.
tuned-adm profile virtual-guest-no-thp
Spusťte službu MongoDB
Chcete-li spustit službu MongoDB, spusťte:
systemctl start mongod
Chcete-li zkontrolovat stav služby MongoDB, spusťte:
systemctl status mongod
Výstup:● mongod.service – databázový server MongoDB Načten:načten (/usr/lib/systemd/system/mongod.service; povoleno; přednastaveno dodavatelem:zakázáno) Aktivní:aktivní (běží) od Po 2020-08-10 13:10:15 EDT; Před 11 s Dokumenty:https://docs.mongodb.org/manual Proces:3147 ExecStart=/usr/bin/mongod $OPTIONS (code=exited, status=0/SUCCESS) Proces:3145 ExecStartPre=/usr/bin/chmod 0755 /var/run/mongodb (kód=ukončeno, stav=0/ÚSPĚCH) Proces:3143 ExecStartPre=/usr/bin/chown mongod:mongod /var/run/mongodb (kód=ukončeno, stav=0/SU> Proces :3141 ExecStartPre=/usr/bin/mkdir -p /var/run/mongodb (kód=ukončeno, stav=0/ÚSPĚCH) Hlavní PID:3149 (mongod) Paměť:61,1M CGroup:/system.slice/mongod.service └─3149 /usr/bin/mongod -f /etc/mongod.confSrpen 10 13:10:14 centos8.itzgeek.local systemd[1]:Spouštění databázového serveru MongoDB...10. srpna 13:10:14 centos8.itzgeek .local mongod[3147]:chystá se rozdělit podřízený proces, čeká se na podání> 10. srpna 13:10:14 centos8.itzgeek.local mongod[3147]:rozvětvený proces:3149 10. srpna 13:10:15 centos8.itzdgeek.local mongod [3147]:podřízený proces byl úspěšně zahájen, nadřazený exiti>10. srpna 13:10:15 centos8.itzgeek.local systemd[1]:Spuštěn databázový server MongoDB.Zkontrolujte verzi MongoDB.
mongod --version
Output:db verze v4.4.0 Informace o sestavení:{ "version":"4.4.0", "gitVersion":"563487e100c4215e2dce98d0af2a6a5a2d67c5cf", "openSSLVersion":"OpenSLVersion":"OpenSLVersion":"OpenSLVersion":"OpenSLVersion":"OpenSLVersion":"OpenSLVersion":"OpenSLVersion":"OpenSLVersion":"4.4.0", "gitVersion" :[], "allocator":"tcmalloc", "environment":{ "distmod":"rhel80", "distarch":"x86_64", "target_arch":"x86_64" }}Pomocí příkazu netstat zkontrolujte, zda MongoDB naslouchá na portu 27017.
netstat -antup | grep -i 27017
Output:tcp 0 0 127.0.0.1:27017 0.0.0.0:* LISTEN 6898/mongodČTĚTE: Příkaz netstat nebyl nalezen na CentOS 7 / RHEL 7 – Quick Fix
Přístup k MongoDB
Připojte se k prostředí MongoDB zadáním následujícího příkazu.
mongo
Výstup:MongoDB shell verze v4.4.0 připojující se k:mongodb://127.0.0.1:27017/?compressors=disabled&gssapiServiceName=mongodbImplicitní relace:session { "id" :UUID("3ecdceaa-5050-4283b3-962523b3-962523b3-96 ") }Verze serveru MongoDB:4.4.0Vítejte v prostředí MongoDB. Chcete-li získat interaktivní nápovědu, zadejte „help“. Podrobnější dokumentaci naleznete na adrese https://docs.mongodb.com/Questions? Vyzkoušejte MongoDB Developer Community Forums https://community.mongodb.com>Závěr
To je vše. Doufám, že již máte MongoDB na svém systému CentOS 8 / RHEL 8. Podělte se o svůj názor v sekci komentářů.
Cent OS