MongoDB
 sql >> база данни >  >> NoSQL >> MongoDB

Автоматизиране и управление на MongoDB в облака

Управлението на бази данни традиционно е сложно и отнема много време. Внедряването, с главоболието на сигурността, сложната мрежа, планирането и внедряването на архивиране и наблюдението, беше главоболие. Увеличаването на вашия клъстер от база данни е голямо начинание. И в свят, в който се очаква 24/7 наличност и бързо възстановяване след бедствие, управлението дори на един клъстер от база данни може да бъде работа на пълен работен ден.

ClusterControl на Severalnines е система за внедряване и управление на база данни, която се занимава с горното, като улеснява бързото разгръщане на излишни, защитени клъстери или възли от база данни, включително разширена функционалност за архивиране и наблюдение - независимо дали на място или в облака. С плъгини, поддържащи Nagios, PagerDuty и Zabbix, наред с други, ClusterControl се интегрира добре със съществуващата инфраструктура и инструменти, за да ви помогне да управлявате вашите сървъри на бази данни с увереност.

MongoDB е водещият NoSQL сървър на база данни в света днес. Използвайки ClusterControl, с който можете да разгръщате и управлявате или официален MongoDB, или Percona Server за MongoDB, конкурентното предложение на Percona, включващо функции на MongoDB Enterprise, ще преминем през внедряването на MongoDB Replica Set с три възела за данни и ще разгледаме някои от функциите на приложението ClusterControl.

Ще разгледаме някои ключови функции на ClusterControl, особено що се отнася до MongoDB, използвайки Amazon Web Services. Amazon Web Services (или AWS) е най-голямата инфраструктура като облачен доставчик на услуги в световен мащаб, хостваща милиони потребители по целия свят. Тя включва много услуги за всички случаи на употреба от практически неограничен обект за съхранение със S3 и силно мащабируема инфраструктура на виртуална машина, използваща EC2 чак до съхраняване на корпоративна база данни с Redshift и дори машинно обучение.

След като прочетете този блог, може да пожелаете да прочетете и нашата облачна база данни „Направи си сам“ в Бялата книга на Amazon Web Services, която обсъжда по-подробно съображенията за конфигурация и производителност на сървърите на бази данни в AWS Cloud. Освен това имаме Become a MongoDB DBA, бяла книга с по-задълбочени подробности, специфични за MongoDB.

За да започнете, първо ще трябва да разположите четири екземпляра на AWS. За производствена платформа типът на инстанцията трябва да бъде внимателно избран въз основа на указанията, които обсъдихме по-рано, но за нашите цели ще са достатъчни инстанции с 2 виртуални CPU и 4 GB RAM. Един от тези възли ще хоства ClusterControl, другите ще се използват за разгръщане на трите възли на базата данни.

Започнете със създаване на група за защита на възлите на базата данни, позволяваща входящ трафик към порт 27017. Няма нужда да ограничавате изходящия трафик, но ако желаете да го направите, разрешете изходящия трафик на портове 1024-65535, за да улесните изходящата комуникация от сървърите на базата данни .

След това създайте групата за сигурност за вашия възел ClusterControl. Разрешете входящия трафик на портове 22 и 80. Добавете този идентификатор на групата за защита към групата за защита на възлите на базата данни и разрешете неограничена TCP комуникация. Това ще улесни комуникацията между двете групи за сигурност, без да позволява ssh достъп до възлите на базата данни от външни клиенти.

Стартирайте екземплярите в съответните им групи за сигурност, като изберете за всеки екземпляр KeyPair, за който имате ssh ключ. За целите на тази задача използвайте един и същ KeyPair за всички екземпляри. Ако сте загубили ssh ключа за вашия KeyPair, ще трябва да създадете нов KeyPair. Когато стартирате екземплярите, не избирайте изображението по подразбиране на Amazon Linux, вместо това изберете AMI, базиран на поддържана операционна система, изброена тук. Тъй като използвам AWS регион EU-CENTRAL-1, ще използвам общност AMI ami-fa2df395, изображение на CentOS 7.3, за тази цел.

Ако имате инсталирани инструментите на командния ред на AWS, използвайте aws ec2 describe-instances команда, описана по-горе, за да потвърдите, че вашите екземпляри се изпълняват – в противен случай вижте вашите екземпляри в уеб конзолата на AWS – и когато бъде потвърдено, влезте в екземпляра на ClusterControl чрез ssh.

Копирайте файла с публичен ключ, който сте изтеглили при създаването на своя KeyPair, в екземпляра на ClusterControl. Можете да използвате scp команда за тази цел. Засега нека го оставим в директорията по подразбиране /home/centos, домашната директория на потребителя на centos. Обадих се на моя s9s.pem. Ще ви е необходим инструментът wget инсталиран; инсталирайте го, като използвате следната команда:

$ sudo yum -y install wget

За да инсталирате ClusterControl, изпълнете следните команди:

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

Инсталацията ще ви преведе през някои първоначални въпроси, след което ще отнеме няколко минути, за да извлечете и инсталирате зависимости с помощта на мениджъра на пакети на вашата операционна система.

Когато инсталацията приключи, насочете вашия уеб браузър към http://<адрес на вашия екземпляр на ClusterControl>. Можете да намерите външния адрес на екземпляра с помощта на describe-instances команда или чрез уеб конзолата на AWS.

След като влезете успешно, ще видите следния екран и можете да продължите да разгръщате своя MongoDB Replica Set.

Фигура 1:Добре дошли в ClusterControl!

Както можете да видите, ClusterControl може също да импортира съществуващи клъстери на база данни, което му позволява да управлява съществуващата ви инфраструктура толкова лесно, колкото и новите внедрявания.

За нашите цели ще щракнете върху Разгръщане на клъстер от база данни . На следващия екран ще видите избора на сървъри на бази данни и типове клъстери, които ClusterControl поддържа. Щракнете върху раздела с надпис MongoDB ReplicaSet . Тук стойностите, които ви интересуват, са SSH потребител , SSH ключов път и Име на клъстер . Портът вече трябва да е 22, ssh портът по подразбиране и AMI, който използваме, не изисква Sudo парола .

Фигура 2:Разгръщане на набор от реплики на MongoDB

Ssh потребителят за CentOS 7 AMI е centos , а пътят на SSH ключ е /home/centos/s9s.pem , или подходящия път в зависимост от вашето собствено име на ключов файл. Нека използваме MongoDB-RS0 като име на клъстера. Приемайки опциите по подразбиране, щракваме върху Продължи .

Фигура 3:Конфигуриране на вашето внедряване

Тук можем да избираме между официалната версия на MongoDB и версията на Percona. Изберете каквото предпочитате и предоставете администраторски потребител и парола, с които да конфигурирате MongoDB сигурно. Обърнете внимание, че ClusterControl няма да ви позволи да продължите, освен ако не предоставите тези подробности. Забележете предоставените от вас идентификационни данни, ще ви трябват, за да влезете в разгърнатата база данни MongoDB, ако искате да я използвате по-късно. Сега изберете име на набор от реплики или приемете по подразбиране. Ще използваме хранилищата на доставчиците, но имайте предвид, че можете да конфигурирате ClusterControl да използва свои собствени хранилища или такива на трета страна, ако предпочитате.

Добавете вашите възли в базата данни, един по един. Можете да изберете да използвате външния IP адрес, но ако предоставите името на хоста, което обикновено се препоръчва, ClusterControl ще запише всички мрежови интерфейси в хостовете и ще можете да изберете интерфейса, на който искате да разположите. След като добавите трите си възела на базата данни, щракнете върху Разгръщане . ClusterControl вече ще разгърне вашия комплект реплики на MongoDB. Щракнете върху Пълни подробности за работата за да наблюдавате как изпълнява конфигурацията на вашия клъстер. Когато задачата приключи, отидете на екрана Клъстери на база данни и вижте своя клъстер.

Фигура 4:Автоматично възстановяване

Ако погледнете по-отблизо, можете да видите, че автоматичното възстановяване е активирано както на ниво клъстер, така и на ниво възел; в случай на неуспехи, ClusterControl ще се опита да възстанови вашия клъстер или отделния възел, който има проблем. Зелената отметка до всеки възел също показва здравословното състояние на клъстера с един поглед.

Фигура 5:Планиране на архивиране

Последната функция, която ще разгледаме тук, е архивиране. ClusterControl предоставя функция за архивиране, която позволява пълно архивиране в съответствие с клъстера или просто стандартен mongodump резервно копие, ако предпочитате. Той също така предоставя възможност за създаване на планирани резервни копия, които да се изпълняват периодично по график по ваш избор. Запазването на резервни копия също се обработва, с опцията за запазване на резервни копия за ограничен период от време, като се избягват проблеми със съхранението.

В този блог се опитах да ви дам кратък преглед на използването на ClusterControl с MongoDB, но има много повече функции, поддържани от ClusterControl. Разгръщането на разчленени клъстери, със скрити и/или забавени подчинени устройства, арбитри и други функции са налични. Повече информация е налична на нашия уебсайт, където можете също да намерите уебинари, бели книги, уроци и обучение, както и да изпробвате ClusterControl безплатно.


  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Как да конвертирам свойство в MongoDB от текст към тип дата?

  2. Активиране на компресиране на данни в MongoDB 3.0

  3. Как да получите идентификатора на обекта в PyMongo след вмъкване?

  4. Намерете всички документи през последните n дни

  5. mongoose/mongodb заявка за множествено сортиране