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

Automatizace a správa MongoDB v cloudu

Správa databáze byla tradičně složitá a časově náročná. Nasazování, s bolestmi hlavy v oblasti zabezpečení, složitého vytváření sítí, plánování a implementace zálohování a monitorování, bylo bolestí hlavy. Rozšiřování vašeho databázového clusteru bylo velkým úkolem. A ve světě, kde se očekává nepřetržitá dostupnost a rychlé zotavení po havárii, může být správa i jednoho databázového clusteru práce na plný úvazek.

Niekoľkonines’ ClusterControl je systém pro nasazení a správu databází, který řeší výše uvedené a umožňuje rychlé nasazení redundantních, zabezpečených databázových clusterů nebo uzlů, včetně pokročilé funkce zálohování a monitorování – ať už na místě nebo v cloudu. Díky pluginům podporujícím mimo jiné Nagios, PagerDuty a Zabbix se ClusterControl dobře integruje se stávající infrastrukturou a nástroji, které vám pomohou s jistotou spravovat vaše databázové servery.

MongoDB je dnes předním NoSQL databázovým serverem na světě. Pomocí ClusterControl, pomocí kterého můžete nasadit a spravovat buď oficiální MongoDB nebo Percona Server pro MongoDB, konkurenční nabídku Percona obsahující funkce MongoDB Enterprise, projdeme nasazením sady replik MongoDB se třemi datovými uzly a podíváme se na některé funkce. aplikace ClusterControl.

Projdeme si některé klíčové funkce ClusterControl, zejména pokud se týkají MongoDB, pomocí Amazon Web Services. Amazon Web Services (nebo AWS) je největší globální infrastruktura jako poskytovatel cloudu služeb, která hostí miliony uživatelů po celém světě. Zahrnuje mnoho služeb pro všechny případy použití od prakticky neomezeného úložiště objektů s S3 a vysoce škálovatelné infrastruktury virtuálních strojů pomocí EC2. až po podnikové databázové sklady s Redshift a dokonce i Machine Learning.

Jakmile si přečtete tento blog, možná si budete chtít přečíst i naši vlastní cloudovou databázi na webu Amazon Web Services Whitepaper, která podrobněji pojednává o aspektech konfigurace a výkonu databázových serverů v AWS Cloud. Kromě toho jsme vytvořili Become a MongoDB DBA, whitepaper s podrobnějšími podrobnostmi specifickými pro MongoDB.

Nejprve budete muset nasadit čtyři instance AWS. Pro produkční platformu by měl být typ instance pečlivě vybrán na základě pokynů, které jsme probrali dříve, ale pro naše účely budou postačovat instance se 2 virtuálními CPU a 4 GB RAM. Jeden z těchto uzlů bude hostit ClusterControl, ostatní budou použity k nasazení tří databázových uzlů.

Začněte vytvořením skupiny zabezpečení databázových uzlů, která umožňuje příchozí provoz na portu 27017. Není třeba omezovat odchozí provoz, ale pokud si to přejete, povolte odchozí provoz na portech 1024-65535, abyste usnadnili odchozí komunikaci z databázových serverů. .

Dále vytvořte skupinu zabezpečení pro váš uzel ClusterControl. Povolte příchozí provoz na portech 22 a 80. Přidejte toto ID skupiny zabezpečení do skupiny zabezpečení uzlů databáze a povolte neomezenou komunikaci TCP. To usnadní komunikaci mezi dvěma bezpečnostními skupinami, aniž by bylo umožněno ssh přístupu k databázovým uzlům z externích klientů.

Spusťte instance do jejich příslušných bezpečnostních skupin a pro každou instanci vyberte KeyPair, pro který máte ssh klíč. Pro účely této úlohy použijte stejný KeyPair pro všechny instance. Pokud jste ztratili ssh klíč pro svůj KeyPair, budete si muset vytvořit nový KeyPair. Při spouštění instancí nevybírejte výchozí obraz Amazon Linux, místo toho vyberte AMI založené na podporovaném operačním systému uvedeném zde. Protože používám AWS region EU-CENTRAL-1, použiji pro tento účel komunitní AMI ami-fa2df395, obraz CentOS 7.3.

Pokud máte nainstalované nástroje příkazového řádku AWS, použijte aws ec2 description-instance příkaz podrobně popsaný dříve, abyste potvrdili, že vaše instance běží – jinak si instance prohlédněte ve webové konzoli AWS – a po potvrzení se přihlaste k instanci ClusterControl přes ssh.

Zkopírujte soubor veřejného klíče, který jste stáhli při vytváření vašeho KeyPair, do instance ClusterControl. Můžete použít scp příkaz pro tento účel. Prozatím to necháme ve výchozím adresáři /home/centos, domovském adresáři uživatele centos. Zavolal jsem své s9s.pem. Budete potřebovat nainstalovaný nástroj wget; nainstalujte jej pomocí následujícího příkazu:

$ sudo yum -y install wget

Chcete-li nainstalovat ClusterControl, spusťte následující příkazy:

$ wget http://www.severalnines.com/downloads/cmon/install-cc
$ chmod +x install-cc
$ ./install-cc # as root or sudo user

Instalace vás provede několika úvodními otázkami, po kterých bude několik minut trvat, než načtete a nainstalujete závislosti pomocí správce balíčků vašeho operačního systému.

Po dokončení instalace přejděte ve webovém prohlížeči na http://. Externí adresu instance můžete najít pomocí describe-instances nebo prostřednictvím webové konzole AWS.

Jakmile se úspěšně přihlásíte, zobrazí se následující obrazovka a můžete pokračovat v nasazení sady replik MongoDB.

Obrázek 1:Vítejte v ClusterControl!

Jak můžete vidět, ClusterControl může také importovat existující databázové clustery, což mu umožňuje spravovat vaši stávající infrastrukturu stejně snadno jako nová nasazení.

Pro naše účely kliknete na Nasadit klastr databáze . Na další obrazovce uvidíte výběr databázových serverů a typů clusterů, které ClusterControl podporuje. Klikněte na kartu označenou MongoDB ReplicaSet . Zde jsou hodnoty, které se vás týkají, Uživatel SSH , Cesta klíče SSH a Název clusteru . Port by již měl být 22, výchozí port ssh, a AMI, které používáme, nevyžaduje Sudo Password .

Obrázek 2:Nasazení sady replik MongoDB

Uživatel ssh pro CentOS 7 AMI je centos a cesta klíče SSH je /home/centos/s9s.pem , nebo příslušnou cestu v závislosti na vašem vlastním názvu souboru klíče. Použijme MongoDB-RS0 jako Název clusteru. Přijmeme výchozí možnosti a klikneme na Pokračovat .

Obrázek 3:Konfigurace nasazení

Zde si můžeme vybrat mezi oficiálním sestavení MongoDB a sestavení Percona. Vyberte si, co chcete, a zadejte administrátora a heslo, pomocí kterého můžete MongoDB bezpečně nakonfigurovat. Upozorňujeme, že ClusterControl vám nedovolí pokračovat, pokud neposkytnete tyto podrobnosti. Poznamenejte si přihlašovací údaje, které jste poskytli, budete je potřebovat pro přihlášení do nasazené databáze MongoDB, pokud ji budete chtít později použít. Nyní zvolte název sady replik nebo přijměte výchozí. Budeme používat úložiště dodavatelů, ale uvědomte si, že ClusterControl můžete nakonfigurovat tak, aby používal vaše vlastní úložiště nebo úložiště třetí strany, pokud chcete.

Přidejte uzly databáze, jeden po druhém. Můžete se rozhodnout použít externí IP adresu, ale pokud zadáte název hostitele, což se obecně doporučuje, ClusterControl zaznamená všechna síťová rozhraní v hostitelích a vy si budete moci vybrat rozhraní, na kterém byste chtěli nasadit. Jakmile přidáte své tři databázové uzly, klikněte na Deploy . ClusterControl nyní nasadí vaši sadu replik MongoDB. Klikněte na Úplné podrobnosti úlohy sledovat, jak provádí konfiguraci vašeho clusteru. Po dokončení úlohy přejděte na obrazovku Database Clusters a prohlédněte si svůj cluster.

Obrázek 4:Automatické obnovení

Při bližším pohledu můžete vidět, že automatické obnovení je povoleno jak na úrovni clusteru, tak na úrovni uzlu; v případě selhání se ClusterControl pokusí obnovit váš cluster nebo jednotlivý uzel, který má problém. Zelené zaškrtnutí vedle každého uzlu také na první pohled zobrazuje zdravotní stav clusteru.

Obrázek 5:Plánování záloh

Poslední funkcí, kterou se zde budeme zabývat, jsou zálohy. ClusterControl poskytuje funkci zálohování, která umožňuje úplné zálohování konzistentní s clusterem, nebo jednoduše standardní mongodump zálohovat, pokud chcete. Poskytuje také možnost vytvářet plánované zálohy, které se budou pravidelně spouštět podle vámi zvoleného plánu. Uchovávání záloh je také řešeno s možností uchovat zálohy po omezenou dobu, čímž se zabrání problémům s úložištěm.

V tomto blogu jsem se vám pokusil poskytnout stručný přehled používání ClusterControl s MongoDB, ale ClusterControl podporuje mnohem více funkcí. Nasazení Sharded Clusterů se skrytými a/nebo zpožděnými otroky, arbitry a dalšími funkcemi jsou všechny dostupné. Více informací je k dispozici na našich webových stránkách, kde také můžete najít webináře, whitepapers, tutoriály a školení a zdarma si vyzkoušet ClusterControl.


  1. Zdá se, že dotaz na datum s ISODate v mongodb nefunguje

  2. pipelining vs transakce v redis

  3. Nahrání souboru Node.js (Express 4, MongoDB, GridFS, GridFS-Stream)

  4. MongoDB $arrayToObject