MongoDB
 sql >> Cơ Sở Dữ Liệu >  >> NoSQL >> MongoDB

Cách triển khai ClusterControl trên AWS để quản lý cơ sở dữ liệu đám mây của bạn


ClusterControl là bất khả tri về cơ sở hạ tầng - nó có thể được sử dụng trong trung tâm dữ liệu của riêng bạn trên các máy chủ vật lý, cũng như trong môi trường đám mây ảo hóa. Tất cả những gì bạn cần là truy cập ssh từ máy chủ lưu trữ ClusterControl đến các nút cơ sở dữ liệu và sau đó bạn có thể triển khai MySQL / MariaDB / MariaDB, MongoDB độc lập / sao chép / phân cụm, MongoDB (bộ bản sao hoặc cụm phân đoạn) hoặc PostgreSQL (sao chép trực tuyến). Trong bài đăng blog này, chúng tôi sẽ hướng dẫn bạn các bước triển khai ClusterControl trên EC2.

Thiết lập phiên bản trong EC2

Các yêu cầu phần cứng cho ClusterControl được mô tả ở đây. Chúng nhằm mục đích tạo ra một nền tảng hoạt động hiệu quả cho máy chủ ClusterControl. Đã nói rằng, chúng tôi sẽ sử dụng một phiên bản nhỏ cho mục đích thử nghiệm của chúng tôi (t2.micro) - đối với chúng tôi như vậy là đủ.

Đầu tiên, chúng ta cần chọn một AMI. ClusterControl hỗ trợ:

  • Redhat / CentOS / Oracle Linux 6 trở lên
  • Ubuntu 12.04 / 14.04 / 16.04 LTS
  • Debian 7.0 trở lên

Chúng tôi sẽ sử dụng Ubuntu 16.04.

Bước tiếp theo - loại phiên bản. Chúng tôi sẽ chọn t2.micro ngay bây giờ, mặc dù bạn sẽ muốn sử dụng các phiên bản lớn hơn cho thiết lập sản xuất. Đối với các nhà cung cấp dịch vụ đám mây khác, hãy chọn các phiên bản có bộ nhớ ít nhất 1 GB.

Chúng tôi sẽ triển khai bốn phiên bản cùng một lúc, một cho ClusterControl và ba cho Percona XtraDB Cluster. Bạn cần quyết định nơi các phiên bản đó nên được triển khai (VPC hay không, mạng con nào, v.v.). Đối với mục đích thử nghiệm của chúng tôi, chúng tôi sẽ sử dụng VPC và một mạng con duy nhất. Tất nhiên, việc triển khai các nút trên các mạng con (Vùng khả dụng) làm cho thiết lập của bạn có nhiều khả năng tồn tại hơn nếu một trong các AZ không khả dụng.

Để lưu trữ, chúng tôi sẽ sử dụng 100GB ổ SSD đa năng (GP2). Điều này đủ để thực hiện một số thử nghiệm với khối lượng dữ liệu hợp lý.

Tiếp theo - các nhóm bảo mật. Truy cập SSH là một yêu cầu. Ngoài ra, bạn cần mở các cổng theo yêu cầu của cơ sở dữ liệu mà bạn định triển khai. Bạn có thể tìm thêm thông tin về những cổng nào được yêu cầu trong cổng hỗ trợ của chúng tôi.

Cuối cùng, bạn cần chọn một trong các cặp khóa hiện có hoặc bạn có thể tạo một cặp khóa mới. Sau bước này, các phiên bản của bạn sẽ được khởi chạy.

Khi các phiên bản đã bắt đầu và đang chạy, đã đến lúc cài đặt ClusterControl. Đối với điều đó, hãy đăng nhập vào một trong các phiên bản và tải xuống tập lệnh cài đặt 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]

Sau đó, hãy đảm bảo rằng nó có thể được thực thi trước khi chạy nó:

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

Khi bắt đầu, bạn sẽ nhận được một số thông tin về các yêu cầu đối với các bản phân phối Linux được hỗ trợ:

!!
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.

Tại một số thời điểm, bạn sẽ phải trả lời một số câu hỏi về tên máy chủ, cổng và mật khẩu.

=> 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 ...

Cuối cùng, bạn sẽ nhận được xác nhận rằng ClusterControl đã được cài đặt. Tập lệnh cài đặt cũng sẽ cố gắng phát hiện IP công cộng của bạn và in ra một liên kết có thể được sử dụng trong trình duyệt của bạn để truy cập 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.

Sau khi quá trình cài đặt hoàn tất, vẫn còn một việc cần lưu ý - quyền truy cập SSH từ ClusterControl đến các máy chủ còn lại. Trừ khi bạn đã có quyền truy cập SSH giữa các nút (và bạn có thể sử dụng ssh-copy-id), đây sẽ là một quy trình thủ công. Đầu tiên và quan trọng nhất, chúng ta cần tạo một khóa ssh mới:

[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]:~#

Chúng tôi có thể xác minh rằng nó đã được tạo chính xác. Bạn cũng sẽ muốn sao chép nội dung của khóa công khai - chúng tôi sẽ sử dụng nó để tạo các bản sao của nó trên các nút còn lại.

[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

Bây giờ, trên mọi nút còn lại, bạn cần thêm khóa công khai này vào tệp ủy quyền. Đối với ubuntu, bạn có thể muốn làm sạch nội dung của nó trước tiên nếu bạn muốn sử dụng đăng nhập root. Theo mặc định, chỉ người dùng ubuntu mới có thể được sử dụng để kết nối thông qua SSH. Thiết lập như vậy (người dùng thông thường và sudo) cũng có thể sử dụng với ClusterControl nhưng ở đây chúng tôi sẽ dành cho người dùng root.

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

Sau khi các tệp allow_keys trên tất cả các nút chứa khóa công khai của chúng tôi, chúng tôi sẽ sao chép khóa công khai của mình vào thư mục .ssh và thực hiện các thay đổi cần thiết về quyền truy cập:

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

Bây giờ chúng tôi có thể kiểm tra xem quyền truy cập SSH có hoạt động như mong đợi hay không:

[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.

Tất cả đều tốt. Đã đến lúc định cấu hình ClusterControl.

Điền vào một số chi tiết đăng ký.

Khi bạn đã đăng nhập, trình hướng dẫn sẽ xuất hiện với tùy chọn triển khai cụm mới hoặc nhập cụm hiện có.

Chúng tôi muốn triển khai Percona XtraDB Cluster vì vậy chúng tôi sẽ đi đến “Triển khai cụm cơ sở dữ liệu” và chọn tab “MySQL Galera”. Tại đây, chúng tôi phải điền các chi tiết truy cập cần thiết cho kết nối SSH. Chúng tôi sẽ đặt Người dùng SSH thành root và chúng tôi sẽ điền vào đường dẫn đến khóa SSH của chúng tôi.

Tiếp theo, chúng tôi sẽ xác định nhà cung cấp, phiên bản, mật khẩu và địa chỉ IP cho các máy chủ cơ sở dữ liệu của chúng tôi. Hãy nhớ rằng ClusterControl sẽ kiểm tra kết nối SSH với máy chủ cơ sở dữ liệu đích. Nếu mọi thứ hoạt động tốt, bạn sẽ thấy dấu tích màu xanh lá cây. Nếu bạn thấy rằng xác thực SSH không thành công, thì bạn cần phải điều tra vì máy chủ ClusterControl không thể truy cập vào máy chủ cơ sở dữ liệu của bạn.

Sau đó, nhấp vào Triển khai để bắt đầu quá trình triển khai.

Bạn có thể theo dõi tiến độ triển khai trong trình theo dõi hoạt động.

Hãy nhớ rằng triển khai chỉ là bước đầu tiên. Việc vận hành cơ sở dữ liệu yêu cầu bạn theo dõi hiệu suất của máy chủ, phiên bản cơ sở dữ liệu, truy vấn và quản lý các bản sao lưu, sửa lỗi và các bất thường khác, quản lý proxy, nâng cấp, v.v. ClusterControl có thể quản lý tất cả các khía cạnh này cho bạn, vì vậy hãy thử và cho chúng tôi biết bạn tiếp tục như thế nào.


  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. MongoDB so với MySQL NoSQL - Tại sao Mongo lại tốt hơn

  2. Tìm tài liệu với ObjectID trong mongoDB

  3. Làm cách nào để chuyển đổi một thuộc tính trong MongoDB từ văn bản sang loại ngày tháng?

  4. 3 bước đơn giản để cải thiện tính bảo mật cho cài đặt MongoDB của bạn

  5. Mongoose khác biệt giữa .save () và sử dụng update ()