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

Как да разположите ClusterControl на AWS, за да управлявате вашата облачна база данни


ClusterControl е инфраструктурно агностичен - може да се използва във вашия собствен център за данни на физически хостове, както и във виртуализирани облачни среди. Всичко, от което се нуждаете, е ssh достъп от хоста на ClusterControl до възлите на базата данни и след това можете да разгърнете самостоятелен/репликиран/клъстериран MySQL/MariaDB, MongoDB (набори от реплики или разчленени клъстери) или PostgreSQL (поточно репликация). В тази публикация в блога ще ви преведем през стъпките за внедряване на ClusterControl на EC2.

Настройка на екземпляри в EC2

Хардуерните изисквания за ClusterControl са описани тук. Те са предназначени да създадат работеща платформа за сървъра ClusterControl. Като казахме това, ще използваме малък екземпляр за нашите тестови цели (t2.micro) – би трябвало да ни е достатъчен.

Първо, трябва да изберем AMI. ClusterControl поддържа:

  • Redhat/CentOS/Oracle Linux 6 и по-нови версии
  • Ubuntu 12.04/14.04/16.04 LTS
  • Debian 7.0 и по-нови версии

Ще използваме Ubuntu 16.04.

Следваща стъпка - тип на инстанция. Засега ще изберем t2.micro, въпреки че ще искате да използвате по-големи екземпляри за производствени настройки. За други доставчици на облак изберете екземпляри с поне 1 GB памет.

Ще внедрим четири екземпляра наведнъж, един за ClusterControl и три за Percona XtraDB Cluster. Трябва да решите къде да бъдат разположени тези екземпляри (VPC или не, коя подмрежа и т.н.). За целите на нашето тестване ще използваме VPC и една подмрежа. Разбира се, разполагането на възли в подмрежите (зони за достъпност) прави вашата настройка по-вероятно да оцелее, ако една от AZ стане недостъпна.

За съхранение ще използваме 100 GB SSD обем с общо предназначение (GP2). Това трябва да е достатъчно за извършване на някои тестове с разумен обем данни.

Следва - групи за сигурност. SSH достъпът е изискване. Освен това, трябва да отворите портове, изисквани от базата данни, която планирате да разположите. Можете да намерите повече информация за това кои портове са необходими в нашия портал за поддръжка.

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

След като екземплярите са стартирани и работят, е време да инсталирате ClusterControl. За целта влезте в един от екземплярите и изтеглете инсталационния скрипт на ClusterControl, install-cc:

[email protected]:~$ wget http://www.severalnines.com/downloads/cmon/install-cc
--2017-09-06 11:13:10--  http://www.severalnines.com/downloads/cmon/install-cc
Resolving www.severalnines.com (www.severalnines.com)... 107.154.146.155
Connecting to www.severalnines.com (www.severalnines.com)|107.154.146.155|:80... connected.
HTTP request sent, awaiting response... 301 Moved Permanently
Location: https://www.severalnines.com/downloads/cmon/install-cc [following]
--2017-09-06 11:13:10--  https://www.severalnines.com/downloads/cmon/install-cc
Connecting to www.severalnines.com (www.severalnines.com)|107.154.146.155|:443... connected.
HTTP request sent, awaiting response... 301 Moved Permanently
Location: https://severalnines.com/downloads/cmon/install-cc [following]
--2017-09-06 11:13:11--  https://severalnines.com/downloads/cmon/install-cc
Resolving severalnines.com (severalnines.com)... 107.154.238.155, 107.154.148.155
Connecting to severalnines.com (severalnines.com)|107.154.238.155|:443... connected.
HTTP request sent, awaiting response... 200 OK
Length: 56913 (56K) [text/plain]
Saving to: ‘install-cc’

install-cc                                           100%[=====================================================================================================================>]  55.58K   289KB/s    in 0.2s

2017-09-06 11:13:12 (289 KB/s) - ‘install-cc’ saved [56913/56913]

След това се уверете, че може да се изпълни, преди да го стартирате:

[email protected]:~$ chmod +x install-cc
[email protected]:~$ sudo ./install-cc

В началото ще получите информация за изискванията към поддържаните Linux дистрибуции:

!!
Only RHEL/Centos 6.x|7.x, Debian 7.x|8.x, Ubuntu 12.04.x|14.04.x|16.04.x LTS versions are supported
Minimum system requirements: 2GB+ RAM, 2+ CPU cores
Server Memory: 990M total, 622M free
MySQL innodb_buffer_pool_size set to 512M

Severalnines would like your help improving our installation process.
Information such as OS, memory and install success helps us improve how we onboard our users.
None of the collected information identifies you personally.
!!
=> Would you like to help us by sending diagnostics data for the installation? (Y/n):

This script will add Severalnines repository server for deb and rpm packages and
install the ClusterControl Web Applicaiton and Controller.
An Apache and MySQL server will also be installed. An existing MySQL Server on this host can be used.

В един момент ще трябва да отговорите на някои въпроси относно имена на хостове, портове и пароли.

=> The Controller hostname will be set to 172.30.4.20. Do you want to change it? (y/N):
=> Creating temporary staging dir s9s_tmp

=> Setting up the ClusterControl Web Application ...
=> Using web document root /var/www/html
=> No running MySQL server detected
=> Installing the default distro MySQL Server ...
=> Assuming default MySQL port is 3306. Do you want to change it? (y/N):

=> Enter the MySQL root password:
=> Enter the MySQL root password again:
=> Importing the Web Application DB schema and creating the cmon user.

=> Importing /var/www/html/clustercontrol/sql/dc-schema.sql
mysql: [Warning] Using a password on the command line interface can be insecure.
=> Set a password for ClusterControl's MySQL user (cmon) [cmon]
=> Enter a CMON user password:
=> Enter the CMON user password again: => Creating the MySQL cmon user ...
mysql: [Warning] Using a password on the command line interface can be insecure.
=> Creating UI configuration ...

Накрая ще получите потвърждението, че ClusterControl е инсталиран. Скриптът за инсталиране също ще се опита да открие вашия публичен IP и да отпечата връзка, която може да се използва във вашия браузър за достъп до ClusterControl.

=> ClusterControl installation completed!
Open your web browser to http://172.30.4.20/clustercontrol and
enter an email address and new password for the default Admin User.

Determining network interfaces. This may take a couple of minutes. Do NOT press any key.
Public/external IP => http://34.230.71.40/clustercontrol
Installation successful. If you want to uninstall ClusterControl then run install-cc --uninstall.

След като инсталацията приключи, има още едно нещо, за което трябва да се погрижите - SSH достъп от ClusterControl до останалите хостове. Освен ако вече имате SSH достъп между възлите (и можете да използвате ssh-copy-id), това ще бъде ръчен процес. Първо и най-важно, трябва да генерираме нов ssh ключ:

[email protected]:~# ssh-keygen -C 'galera_cluster' -f id_rsa_galera -t rsa -b 4096
Generating public/private rsa key pair.
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in id_rsa_galera.
Your public key has been saved in id_rsa_galera.pub.
The key fingerprint is:
SHA256:2tWOGXbrtc0Qh45NhNPzUSVdDzE9ANV1TJ0QBE5QrQY galera_cluster
The key's randomart image is:
+---[RSA 4096]----+
|         .o=**X*&|
|         Eo  + BO|
|          ..+ +.o|
|           + o +.|
|        S = o + o|
|       o o * * o |
|      . . o + =  |
|           . . = |
|            . . o|
+----[SHA256]-----+
[email protected]:~#

Можем да потвърдим, че е създаден правилно. Вие също ще искате да копирате съдържанието на публичния ключ - ние ще го използваме, за да създадем негови копия на останалите възли.

[email protected]:~# cat id_rsa_galera.pub
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQDYKil17MzTrNc70GIQlVoK6xLop9acfT3W6kBUGO4ybsvIA5Fss+WvT/DLsYMtukq2Eih93eO4amLRYQIeyWSjJ/bBwIF/LXL4v04GF8+wbDgCyiV/t9dSuXna9qFeawkUVcPjnmWnZqUoaP5QeovXTluxl54xEwbFm1oLT+fgWbaim5w9vVUK4+hAHaZ7wVvTPVsIt1B3nJgWJF0Sz+TJN87vSUg7xdshgzhapUotXlguFGVzmNKWLnEFDCK7RT41oh4y4rkKP7YLc+wFfRHYTnKyMIcf0/0VMyL+2AdwQp8RThbBommf2HGimF1hSyA9/fc+tLi7FVTg1bKKeXj4hwexeFAJZwoy3HyD3wQ/NwadpDVk5Pg7YYzdN2aCZfvo27qp3gdQQ2H+LF6LvDyQEkgRpFN+pHoWQvPjJJasjfIcfdaC9WmDiL4s5fXyCTQz/x0NaTXVkLBS9ibfOUw8AGdd36FvdqnNOFOlMLKLa359JhdpqXnH7ksiThcotQuFmV5Dc8M66vTDz9rvVZhNC0nME478RNBP0Bgj1BM26XdQlzozeaRmHGoZXcSQVJTXBC93+QN4+bRmWmxhhj5G5M7bFiQyal1VtugoUt8ZV4NiiG+KDd6yj5um8+CffD/BASGrv3vffH+AK7xtjchIv5su40+unecfSOtO98TiQw== galera_cluster

Сега, на всеки оставащ възел, трябва да добавите този публичен ключ във файла authorized_keys. За ubuntu може да искате първо да почистите съдържанието му, ако искате да използвате root вход. По подразбиране само потребител на ubuntu може да се използва за свързване чрез SSH. Такава настройка (обикновен потребител и sudo) също е възможна за използване с ClusterControl, но тук ще се спрем на root потребител.

[email protected]:~# vim ~/.ssh/authorized_keys

След като файловете authorized_keys на всички възли съдържат нашия публичен ключ, ние ще копираме нашия публичен ключ в директорията .ssh и ще направим необходимите промени в правата за достъп:

[email protected]:~# cp id_rsa_galera /root/.ssh/
[email protected]:~# chmod 600 /root/.ssh/id_rsa_galera

Сега можем да тестваме дали SSH достъпът работи както се очаква:

[email protected]:~# ssh -i /root/.ssh/id_rsa_galera 172.30.4.46
Welcome to Ubuntu 16.04.2 LTS (GNU/Linux 4.4.0-1022-aws x86_64)

 * Documentation:  https://help.ubuntu.com
 * Management:     https://landscape.canonical.com
 * Support:        https://ubuntu.com/advantage

  Get cloud support with Ubuntu Advantage Cloud Guest:
    http://www.ubuntu.com/business/services/cloud

0 packages can be updated.
0 updates are security updates.


[email protected]:~# logout
Connection to 172.30.4.46 closed.

всичко е добре. Време е да конфигурирате ClusterControl.

Попълнете някои данни за регистрация.

След като влезете, ще се появи съветник с опция за разгръщане на нов клъстер или импортиране на съществуващ.

Искаме да внедрим Percona XtraDB Cluster, така че ще отидем на „Deploy Database Cluster“ и ще изберем раздела „MySQL Galera“. Тук трябва да попълним данни за достъп, необходими за SSH свързаност. Ще настроим SSH User на root и ще попълним пътя до нашия SSH ключ.

След това ще дефинираме доставчик, версия, парола и IP адреси за нашите хостове на база данни. Моля, имайте предвид, че ClusterControl ще провери SSH свързаността към целевите хостове на база данни. Ако всичко работи добре, ще видите зелени кърлежи. Ако видите, че SSH удостоверяването е неуспешно, тогава ще трябва да проучите, тъй като сървърът на ClusterControl няма достъп до хостовете на вашата база данни.

След това щракнете върху Разгръщане, за да започнете процеса на внедряване.

Можете да проследявате напредъка на внедряването в монитора на активността.

Не забравяйте, че внедряването е само първата стъпка. Работата с база данни изисква от вас да наблюдавате производителността на вашите хостове, екземпляри на база данни, заявки и да управлявате архивиране, да коригирате грешки и други аномалии, да управлявате прокси сървъри, надстройки и т.н. ClusterControl може да управлява всички тези аспекти вместо вас, така че опитайте и уведомете ни как се справяте.


  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. MongoDB сортиране()

  2. Ръководство за внедряване и поддръжка на MongoDB с помощта на Puppet:Част 2

  3. PyMongo -- итерация на курсора

  4. Mongoose.js:Намерете потребител по потребителско име LIKE value

  5. MongoDB $trunc