sql >> Databasteknik >  >> NoSQL >> MongoDB

Automatisera och hantera MongoDB i molnet

Databashantering har traditionellt sett varit komplex och tidskrävande. Implementering, med huvudvärk av säkerhet, komplexa nätverk, backup planering och implementering, och övervakning, har varit en huvudvärk. Att skala ut ditt databaskluster har varit en stor uppgift. Och i en värld där tillgänglighet dygnet runt och snabb katastrofåterställning förväntas, kan det vara ett heltidsjobb att hantera till och med ett enda databaskluster.

Severalnines ClusterControl är ett databasdistribution och hanteringssystem som adresserar ovanstående, vilket underlättar snabb distribution av redundanta, säkra databaskluster eller noder, inklusive avancerad säkerhetskopierings- och övervakningsfunktionalitet - oavsett om det är på plats eller i molnet. Med plugins som stöder bland annat Nagios, PagerDuty och Zabbix, integrerar ClusterControl väl med befintlig infrastruktur och verktyg för att hjälpa dig att hantera dina databasservrar med förtroende.

MongoDB är den ledande NoSQL-databasservern i världen idag. Med hjälp av ClusterControl, med vilken du kan distribuera och hantera antingen officiell MongoDB eller Percona Server för MongoDB, Perconas konkurrerande erbjudande som innehåller MongoDB Enterprise-funktioner, kommer vi att gå igenom implementeringen av en MongoDB Replica Set med tre datanoder, och titta på några av funktionerna i ClusterControl-applikationen.

Vi kommer att gå igenom några nyckelfunktioner i ClusterControl, särskilt när det gäller MongoDB, med hjälp av Amazon Web Services. Amazon Web Services (eller AWS) är den största molnleverantören för Infrastructure as a Service globalt, som är värd för miljontals användare över hela världen. Den omfattar många tjänster för alla användningsfall från praktiskt taget obegränsad objektlagring med S3 och mycket skalbar virtuell maskininfrastruktur med EC2 hela vägen till företagsdatabaslager med Redshift och till och med maskininlärning.

När du har läst den här bloggen kanske du också vill läsa vår DIY Cloud Database on Amazon Web Services Whitepaper, som diskuterar konfigurations- och prestandaöverväganden för databasservrar i AWS Cloud mer i detalj. Dessutom har vi Become a MongoDB DBA, ett whitepaper med mer djupgående MongoDB-specifika detaljer.

Till att börja med måste du först distribuera fyra AWS-instanser. För en produktionsplattform bör instanstypen väljas noggrant utifrån de riktlinjer som vi tidigare diskuterat, men för våra ändamål räcker det med instanser med 2 virtuella CPU:er och 4GB RAM. En av dessa noder kommer att vara värd för ClusterControl, de andra kommer att användas för att distribuera de tre databasnoderna.

Börja med att skapa dina databasnoders säkerhetsgrupp, som tillåter inkommande trafik på port 27017. Det finns inget behov av att begränsa utgående trafik, men om du vill göra det, tillåt utgående trafik på portarna 1024-65535 för att underlätta utgående kommunikation från databasservrarna .

Skapa sedan säkerhetsgruppen för din ClusterControl-nod. Tillåt inkommande trafik på portarna 22 och 80. Lägg till detta säkerhetsgrupp-ID till säkerhetsgruppen för din databasnod och tillåt obegränsad TCP-kommunikation. Detta kommer att underlätta kommunikationen mellan de två säkerhetsgrupperna, utan att tillåta ssh-åtkomst till databasnoderna från externa klienter.

Starta instanserna i sina respektive säkerhetsgrupper och välj för varje instans ett nyckelpar som du har ssh-nyckeln för. För den här uppgiften, använd samma KeyPair för alla instanser. Om du har tappat bort ssh-nyckeln för ditt KeyPair måste du skapa ett nytt KeyPair. När du startar instanserna, välj inte standard Amazon Linux-bilden, välj istället en AMI baserat på ett operativsystem som stöds som listas här. Eftersom jag använder AWS region EU-CENTRAL-1 kommer jag att använda community AMI ami-fa2df395, en CentOS 7.3-bild, för detta ändamål.

Om du har AWS kommandoradsverktyg installerade, använd aws ec2 describe-instances kommandot som beskrivits tidigare för att bekräfta att dina instanser körs--visa annars dina instanser i AWS-webbkonsolen--och när det är bekräftat loggar du in på ClusterControl-instansen via ssh.

Kopiera den publika nyckelfilen du laddade ner när du skapade ditt KeyPair till ClusterControl-instansen. Du kan använda scp kommando för detta ändamål. För nu, låt oss lämna det i standardkatalogen /home/centos, hemkatalogen för centos-användaren. Jag har kallat min s9s.pem. Du behöver verktyget wget installerat; installera det med följande kommando:

$ sudo yum -y install wget

För att installera ClusterControl, kör följande kommandon:

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

Installationen leder dig igenom några inledande frågor, varefter det tar några minuter att hämta och installera beroenden med ditt operativsystems pakethanterare.

När installationen är klar, peka din webbläsare till http://. Du kan hitta instansens externa adress med describe-instances kommando eller via AWS webbkonsol.

När du väl har loggat in kommer du att se följande skärm och kan fortsätta att distribuera din MongoDB Replica Set.

Figur 1:Välkommen till ClusterControl!

Som du kan se kan ClusterControl också importera befintliga databaskluster, vilket gör att den kan hantera din befintliga infrastruktur lika enkelt som nya implementeringar.

För våra syften kommer du att klicka på Deploy Database Cluster . På nästa skärm kommer du att se urvalet av databasservrar och klustertyper som ClusterControl stöder. Klicka på fliken märkt MongoDB ReplicaSet . Här är värdena som du är bekymrad över SSH User , SSH-nyckelsökväg och Klusternamn . Porten ska redan vara 22, standard ssh-porten, och AMI:n vi använder kräver inget Sudo-lösenord .

Figur 2:Distribuera en MongoDB Replica Set

ssh-användaren för CentOS 7 AMI är centos , och SSH-nyckelsökvägen är /home/centos/s9s.pem , eller lämplig sökväg beroende på ditt eget nyckelfilnamn. Låt oss använda MongoDB-RS0 som klusternamnet. När vi accepterar standardalternativen klickar vi på Fortsätt .

Figur 3:Konfigurera din distribution

Här kan vi välja mellan MongoDB officiella build och Percona build. Välj vad du föredrar och ange en administratörsanvändare och lösenord som du kan konfigurera MongoDB med säkert. Observera att ClusterControl inte låter dig fortsätta om du inte anger dessa detaljer. Anteckna de referenser du har angett, du behöver dem för att logga in på den distribuerade MongoDB-databasen, om du vill använda den senare. Välj nu ett replikuppsättningsnamn eller acceptera standardinställningen. Vi kommer att använda leverantörens förråd, men tänk på att du kan konfigurera ClusterControl för att använda dina egna eller en tredje parts förråd, om du föredrar det.

Lägg till dina databasnoder, en i taget. Du kan välja att använda den externa IP-adressen, men om du anger värdnamnet, vilket generellt rekommenderas, kommer ClusterControl att registrera alla nätverksgränssnitt i värdarna, och du kommer att kunna välja vilket gränssnitt du vill distribuera på. När du har lagt till dina tre databasnoder klickar du på Distribuera . ClusterControl kommer nu att distribuera din MongoDB Replica Set. Klicka på Fullständiga jobbdetaljer att observera när den utför konfigurationen av ditt kluster. När jobbet är klart, gå till skärmen Databaskluster och se ditt kluster.

Figur 4:Automatisk återställning

Om du tar en närmare titt kan du se att automatisk återställning är aktiverad på både kluster- och nodnivå; i händelse av fel kommer ClusterControl att försöka återställa ditt kluster eller den enskilda noden som har problem. Den gröna bocken bredvid varje nod visar också klustrets hälsostatus med ett ögonkast.

Figur 5:Schemalägga säkerhetskopior

Den sista funktionen vi kommer att täcka här är Säkerhetskopiering. ClusterControl tillhandahåller en säkerhetskopieringsfunktion som tillåter en fullständig klusterkonsekvent säkerhetskopiering, eller helt enkelt en standard mongodump backup om du föredrar det. Det ger också möjlighet att skapa schemalagda säkerhetskopior som körs regelbundet enligt ett schema som du väljer. Lagring av säkerhetskopior hanteras också, med möjlighet att behålla säkerhetskopior under en begränsad period för att undvika lagringsproblem.

I den här bloggen har jag försökt ge dig en kort översikt över hur du använder ClusterControl med MongoDB, men det finns många fler funktioner som stöds av ClusterControl. Utplacering av delade kluster, med dolda och/eller fördröjda slavar, arbiters och andra funktioner är alla tillgängliga. Mer information finns på vår webbplats, där du också kan hitta webbseminarier, whitepapers, handledningar och utbildningar och prova ClusterControl gratis.


  1. Förhindra dubbelinloggning med FOSUserBundle

  2. Vad är det bästa sättet att lagra datum i MongoDB?

  3. Missbruka cURL för att kommunicera med Redis

  4. Hur fyller man i ett underdokument i mongoose efter att ha skapat det?