sql >> Databáze >  >> NoSQL >> MongoDB

Úvod do Percona Server pro MongoDB 4.2

Při výběru databázové technologie NoSQL je třeba vzít v úvahu důležitá hlediska, jako je výkon, odolnost, spolehlivost a zabezpečení. Tyto klíčové faktory by také měly být v souladu s dosahováním obchodních cílů, alespoň pokud jde o databázi.

Mnoho technologií vstoupilo do hry ke zlepšení těchto aspektů a je vhodné, aby organizace zlepšila hlavní možnosti a pokusila se je integrovat do databázových systémů.

Nové technologie by měly zajistit maximální výkon pro zlepšení dosahování obchodních cílů za dostupné provozní náklady, ale s více manipulativními funkcemi, jako je detekce chyb a výstražné systémy.

V tomto blogu budeme diskutovat o verzi Percona MongoDB a o tom, jak různými způsoby rozšiřuje sílu MongoDB.

Co je Percona Server pro MongoDB?

Aby databáze fungovala dobře, musí existovat optimálně zřízený základní server pro vylepšení transakcí čtení a zápisu. Percona Server pro MongoDB je bezplatná open source drop-in náhrada za MongoDB Community Edition, ale s dalšími funkcemi na podnikové úrovni. Je navržen s několika významnými vylepšeními výchozího nastavení serveru MongoDB.

Poskytuje vysoký výkon, vylepšené zabezpečení a spolehlivost pro optimální výkon se sníženými náklady na vztahy s dodavateli proprietárního softwaru.

Percona Server for MongoDB Salient Features

MongoDB Community Edition je jádrem serveru Percona vzhledem k tomu, že již obsahuje důležité funkce, jako je flexibilní schéma, distribuované transakce, znalost dokumentů JSON a nativní vysoká dostupnost. Kromě toho Percona Server pro MongoDB integruje následující významné funkce, které mu umožňují splnit aspekty, které jsme zmínili výše:

  • Hot Backups
  • Šifrování dat v klidu
  • Protokolování auditu
  • Percona Memory Engine
  • Externí ověřování LDAP pomocí SASL
  • Integrace HashiCorp Vault
  • Vylepšené profilování dotazů

Hot Backups 

Server Percona pro MongoDB vytváří fyzickou zálohu dat na běžícím serveru na pozadí bez jakéhokoli znatelného zhoršení provozu. Toho lze dosáhnout spuštěním příkazu createBackup jako správce v databázi správce a zadáním adresáře zálohy.

> use admin

switched to db admin

> db.runCommand({createBackup: 1, backupDir: "/my/backup/data/path"})

{ "ok" : 1 }

Když obdržíte { "ok" :1 }, záloha byla úspěšná. V opačném případě, pokud například zadáte prázdnou cestu k záložnímu adresáři, můžete obdržet chybovou odpověď, tj.:

{ "ok" : 0, "errmsg" : "Destination path must be absolute" }

Obnovení zálohy vyžaduje, abyste nejprve zastavili instanci mongod, vyčistili datový adresář, zkopírovali soubory z adresáře a poté restartovali službu mongod. To lze provést spuštěním příkazu níže

$ service mongod stop && rm -rf /var/lib/mongodb/* && cp --recursive /my/backup/data/path /var/lib/mongodb/ && service mongod start

Zálohu můžete také uložit ve formátu archivu, pokud používáte server Percona pro MongoDB 4.2.1-1 

> use admin

> db.runCommand({createBackup: 1, archive: "path/to/archive.tar" })

Můžete také zálohovat přímo do AWS S3 pomocí výchozího nastavení nebo s více konfiguracemi. Výchozí záloha bloku S3:

> db.runCommand({createBackup:1,  s3:{bucket:"backup", cesta:"newBackup"}})

Šifrování dat v klidu

MongoDB verze 3.2 zavedla šifrování dat v klidu pro modul úložiště WiredTiger, aby bylo zajištěno, že datové soubory mohou být dešifrovány a čteny stranami pouze s dešifrovacím klíčem. Šifrování dat v klidu v Percona Server pro MongoDB bylo představeno ve verzi 3.6, aby šlo ruku v ruce s klidovým šifrováním dat v rozhraní MongoDB. Nejnovější verze však nezahrnuje podporu pro služby správy klíčů Amazon AWS a KIMP.

Šifrování lze také použít na soubory vrácení zpět, když jsou povolena data v klidu. Percona Server pro MongoDB používá možnost encryptionCipherMode se 2 selektivními šifrovacími režimy:

  1. AES256-CBC (výchozí režim šifry)
  2. AES256-GCM

Data můžete zašifrovat pomocí příkazu níže

$ mongod ... --encryptionCipherMode or 

$ mongod ... --encryptionCipherMode AES256-GCM

K určení cesty k souboru, který obsahuje šifrovací klíč, používáme možnost --ecryptionKeyFile.

$ mongod ... --enableEncryption --encryptionKeyFile <fileName>

Protokolování auditu

Pro každý databázový systém mají administrátoři mandát sledovat probíhající aktivity. V Percona Server pro MongoDB, když je auditování povoleno, server generuje soubor protokolu auditu, který obsahuje informace o různých uživatelských událostech, jako je autorizace a autentizace. Po spuštění serveru s povoleným auditováním se však protokoly nebudou během běhu zobrazovat dynamicky.

Protokolování auditu v MongoDB Community Edition může mít dva datové formáty, tedy JSON a BSON. Pro Percona Server pro MongoDB je však protokolování auditu omezeno pouze na soubor JSON. Server také protokoluje pouze důležité příkazy na rozdíl od MongoDB, který protokoluje vše. Vzhledem k tomu, že procedura filtrování v Percona je tak nejasná, pokud jde o syntaxi filtrování, povolení protokolu auditu bez filtrování by nabídlo více záznamů, z nichž se lze zúžit na vlastní specifikace.

Percona Memory Engine

Toto je speciální konfigurace úložiště WiredTiger, která neukládá uživatelská data na disk. Data jsou plně uložena a jsou snadno dostupná v hlavní paměti s výjimkou diagnostických dat, která se zapisují na disk. Díky tomu je zpracování dat mnohem rychlejší, ale s ohledem na to, že musíte zajistit dostatek paměti pro uložení datové sady a server by se neměl vypnout. S příkazem  --storageEngine lze vybrat modul úložiště. Data vytvořená pro jeden modul úložiště nemohou být kompatibilní s jinými stroji úložiště, protože každý modul úložiště má svůj vlastní datový model. Například vybrat modul úložiště v paměti. Nejprve zastavíte jakoukoli spuštěnou instanci mongoda a poté vydáte příkazy:

$ service mongod stop

$ mongod --storageEngine inMemory --dbpath <newDataDir>

Pokud již máte nějaká data s výchozí edicí MongoDB Community a chtěli byste migrovat na Percona Memory Engine, stačí použít nástroje mongodumb a mongorestore zadáním příkazu:

$ mongodump --out <dumpDir>

$ service mongod stop

$ rm -rf /var/lib/mongodb/*

$ sed -i '/engine: .*inMemory/s/#//g' /etc/mongod.conf

$ service mongod start

$ mongorestore <dumpDir>

Externí ověřování LDAP pomocí SASL

Kdykoli klienti zadají požadavek na čtení nebo zápis do instance MongoDB mongod, musí se nejprve ověřit proti databázi uživatelů serveru MongoDB. Externí ověřování umožňuje serveru MongoDB ověřit přihlašovací údaje klienta (uživatelské jméno a heslo) proti samostatné službě. Externí autentizační architektura zahrnuje:

  1. Server LDAP, který vzdáleně ukládá všechna pověření uživatele
  2. Démon SASL, který se používá jako místní server proxy MongoDB pro vzdálenou službu LDAP.
  3. Knihovna SASL:vytváří nezbytná ověřovací data pro klienta a server MongoDB.

Sekvence relace ověřování

  • Klient se připojí k běžící instanci mongoda a vytvoří požadavek na autentizaci PLAIN pomocí knihovny SASL.
  • Požadavek na ověření je poté odeslán na server jako speciální příkaz Mongo, který je poté přijat serverem mongod s jeho obsahem požadavku.
  • Server vytváří některé relace SASL odvozené od přihlašovacích údajů klienta pomocí vlastního odkazu na knihovnu SASL.
  • Server mongod předá datovou část auth knihovně SASL, která ji předá démonovi saslauthd. Démon jej předá LDAP a čeká na odpověď ANO nebo NE na žádost o ověření tím, že zkontroluje, zda uživatel existuje a zda je zadané heslo správné.
  • Saslauthd předá tuto odpověď serveru mongod prostřednictvím knihovny SASL, která pak žádost ověří nebo odmítne.

 Zde je ilustrace tohoto procesu:

Přidání externího uživatele na server mongod:

> db.getSiblingDB("$external").createUser( {user : username, roles: [ {role: "read", db: "test"} ]} );

Externí uživatelé však nemohou mít přiřazené role v databázi správce.

Integrace HashiCorp Vault

HashCorp Vault je produkt navržený pro správu tajemství a ochranu citlivých dat bezpečným ukládáním a přísnou kontrolou přístupu k důvěrným informacím. U předchozí verze Percona byl šifrovací klíč dat v klidu uložen lokálně na serveru v souboru klíče. Integrace s HashCorp Vault zajišťuje šifrovací klíč mnohem lépe.

Vylepšené profilování dotazů

Profilování má negativní dopad na výkon databáze, zvláště když je zadáváno tolik dotazů. Server Percona pro MongoDB přichází v ruku tím, že omezuje počet dotazů shromážděných databázovým profilerem, čímž se snižuje jeho dopad na výkon.

Závěr

Percona Server pro MongoDB je vylepšená open source a vysoce škálovatelná databáze, která může fungovat jako kompatibilní náhrada za MongoDB Community Edition, ale s podobnou syntaxí a konfigurací. Vylepšuje rozsáhlé zabezpečení dat, zejména těch v klidu, a vylepšený výkon databáze prostřednictvím enginu Percona Server, což mimo jiné omezuje rychlost profilování.

Percona Server pro MongoDB je plně podporován ClusterControl jako možnost nasazení.


  1. Načítání HTML z MongoDB pro použití v šabloně

  2. Pište na Slave redis db

  3. Vynucení řízení přístupu na základě rolí pomocí ClusterControl

  4. php mongodb fulltextové vyhledávání a řazení