Mongodb 27017

MongoDB bộ dữ liệu bản sao sẽ được đồng bộ giữa máy chủ mongodb “Chính” và máy chủ mongodb “Phụ”. Thành viên “Chính” của bộ bản sao có thể đọc và ghi dữ liệu trong khi thành viên “Phụ” chỉ có thể đọc dữ liệu. Khi “Primary” bị treo/xuống, “Secondary” mongodb sẽ tự động chuyển thành “Primary” giúp hệ thống chịu lỗi và có sẵn tính năng cao.

[nhãn mục=”1″]

 

Mongodb 27017

mô hình. Replica Set Cluster trên Mongodb

Chuẩn bị

– Hệ điều hành CentOS 7, MongoDB phiên bản 3. 6, SELinux=đã tắt, Dừng dịch vụ Tường lửa

máy 1. 10. 128. 0. 2 mongo1

Ngày 02 tháng 5. 10. 128. 0. 3 mongo2

Máy 3. 10. 128. 0. 4 mongo3

ln -sf /usr/share/zoneinfo/Asia/Ho_Chi_Minh /etc/localtime
sed -i 's/^SELINUX=.*/SELINUX=disabled/g' /etc/selinux/config

Bước 1. Cài đặt mongodb và tạo thư mục chứa dữ liệu và đăng nhập MongoDB

+ Thực hiện trên cả 3 máy chủ mongodb. Tham khảo bài viết trước 

 vi /etc/yum.repos.d/mongodb-org-3.6.repo
[mongodb-org-3.6]
name=MongoDB Repository
baseurl=https://repo.mongodb.org/yum/redhat/6/mongodb-org/3.6/x86_64/
gpgcheck=1
enabled=1
gpgkey=https://www.mongodb.org/static/pgp/server-3.6.asc
______3
mkdir db; mkdir log; chown mongod:mongod log db

+ Cấu hình map tĩnh ip address và hostname trên 3 mongodb server

vi /etc/hosts  //Add thêm 3 dòng sau
10.128.0.2 mongo1
10.128.0.3 mongo2
10.128.0.4 mongo3

Bước 2. Cấu hình file mongod. conf

+ Trên server mongodb1

[[email protected] ~]# vi /etc/mongod.conf
# mongod.conf
# where to write logging data.systemLog:  destination: file  
logAppend: true  
  path: /opt/mongo/log/mongod.log
# Where and how to store data.storage:  
dbPath: /opt/mongo/db  
journal:    
  enabled: true
# how the process runsprocessManagement:  
fork: true  
# fork and run in background
pidFilePath: /var/run/mongodb/mongod.pid  
# location of pidfile
# network interfaces
net:  
  port: 27017
  bindIp: 0.0.0.0
#replication:
replication:  
  oplogSizeMB: 1  
  replSetName: "mongo_rs"

Trên máy chủ mongo2

 vi /etc/mongod.conf
 vi /etc/yum.repos.d/mongodb-org-3.6.repo
0

+ Trên Server mongo3

 vi /etc/yum.repos.d/mongodb-org-3.6.repo
1
 vi /etc/yum.repos.d/mongodb-org-3.6.repo
2

Bước  3. Khởi tạo mongodb replica set cluster

+ Khởi động lại dịch vụ mongod trên cả 3 máy chủ

 vi /etc/yum.repos.d/mongodb-org-3.6.repo
3____14

+ Khởi tạo bộ bản sao mongodb trên máy chủ mongodb1 (chính)

 vi /etc/yum.repos.d/mongodb-org-3.6.repo
5
 vi /etc/yum.repos.d/mongodb-org-3.6.repo
6

+ Tạo cơ sở dữ liệu “người” và tập hợp “nhân viên” trên mongodb1 (chính)

 vi /etc/yum.repos.d/mongodb-org-3.6.repo
7

chuyển sang db người

 vi /etc/yum.repos.d/mongodb-org-3.6.repo
8
 vi /etc/yum.repos.d/mongodb-org-3.6.repo
9

+ Kiểm tra đồng bộ dữ liệu trên mongodb2 & mongodb3 ( phụ )

 vi /etc/yum.repos.d/mongodb-org-3.6.repo
5
[mongodb-org-3.6]
name=MongoDB Repository
baseurl=https://repo.mongodb.org/yum/redhat/6/mongodb-org/3.6/x86_64/
gpgcheck=1
enabled=1
gpgkey=https://www.mongodb.org/static/pgp/server-3.6.asc
1
[mongodb-org-3.6]
name=MongoDB Repository
baseurl=https://repo.mongodb.org/yum/redhat/6/mongodb-org/3.6/x86_64/
gpgcheck=1
enabled=1
gpgkey=https://www.mongodb.org/static/pgp/server-3.6.asc
2

+  Kiểm tra khả năng chịu lỗi bằng cách kill -9 process_mongodb_id trên Primary (mongodb1) và kiểm tra khả năng replica set trên mongodb2 & mongodb3

+  Kiểm tra khả năng chuyển đổi dự phòng trên mongodb2. Khi mongodb1 down, lúc này mongodb2 được ưu tiên. 2 sẽ tự động chuyển từ phụ thành chính có khả năng đọc+ghi dữ liệu

 vi /etc/yum.repos.d/mongodb-org-3.6.repo
5
[mongodb-org-3.6]
name=MongoDB Repository
baseurl=https://repo.mongodb.org/yum/redhat/6/mongodb-org/3.6/x86_64/
gpgcheck=1
enabled=1
gpgkey=https://www.mongodb.org/static/pgp/server-3.6.asc
4

+  Khi mongo1 up lại với priority = 3, lớn nhất trong 3 máy chủ mongo sẽ tự động đảm nhiệm vai trò “Primary” từ mongo2

Bước 4. Cấu hình enable Security Authentication trong mongodb replica set

+ Khi kích hoạt xác thực trong replica set hoặc sharded cluster, các thành viên trong replica set hoặc sharded cluster phải cung cấp keyfile chứa chứng thực. Chúng ta phải kích hoạt xác thực trên mỗi máy chủ thành viên. Sau đây chúng ta sẽ sử dụng keyfile để xác thực các thành viên của bộ bản sao MongoDB

+ Bước 4. 1. Tạo người dùng “admin” trên cơ sở dữ liệu “admin” có vai trò. userAdminAnyDatabase có quyền quản lý tạo, xóa, chỉnh sửa những người dùng khác

[mongodb-org-3.6]
name=MongoDB Repository
baseurl=https://repo.mongodb.org/yum/redhat/6/mongodb-org/3.6/x86_64/
gpgcheck=1
enabled=1
gpgkey=https://www.mongodb.org/static/pgp/server-3.6.asc
5
[mongodb-org-3.6]
name=MongoDB Repository
baseurl=https://repo.mongodb.org/yum/redhat/6/mongodb-org/3.6/x86_64/
gpgcheck=1
enabled=1
gpgkey=https://www.mongodb.org/static/pgp/server-3.6.asc
6
[mongodb-org-3.6]
name=MongoDB Repository
baseurl=https://repo.mongodb.org/yum/redhat/6/mongodb-org/3.6/x86_64/
gpgcheck=1
enabled=1
gpgkey=https://www.mongodb.org/static/pgp/server-3.6.asc
7

– Kiểm tra xem người dùng được tạo có thể xác thực chưa

[mongodb-org-3.6]
name=MongoDB Repository
baseurl=https://repo.mongodb.org/yum/redhat/6/mongodb-org/3.6/x86_64/
gpgcheck=1
enabled=1
gpgkey=https://www.mongodb.org/static/pgp/server-3.6.asc
8
[mongodb-org-3.6]
name=MongoDB Repository
baseurl=https://repo.mongodb.org/yum/redhat/6/mongodb-org/3.6/x86_64/
gpgcheck=1
enabled=1
gpgkey=https://www.mongodb.org/static/pgp/server-3.6.asc
9

– Bật xác thực trong tệp mongod. conf

sudo yum install -y mongodb-org
mkdir -p /opt/mongo & cd /opt/mongo
0
sudo yum install -y mongodb-org
mkdir -p /opt/mongo & cd /opt/mongo
1

+ Bước 4. 2. Tạo keyfile trên máy chủ chính và sao chép keyfile sang toàn bộ máy chủ phụ

sudo yum install -y mongodb-org
mkdir -p /opt/mongo & cd /opt/mongo
2______33
sudo yum install -y mongodb-org
mkdir -p /opt/mongo & cd /opt/mongo
4
sudo yum install -y mongodb-org
mkdir -p /opt/mongo & cd /opt/mongo
5

+ Bước 4. 3. Bật xác thực  và sao chép trên mỗi thành viên của bộ bản sao hoặc cụm phân đoạn

sudo yum install -y mongodb-org
mkdir -p /opt/mongo & cd /opt/mongo
6
sudo yum install -y mongodb-org
mkdir -p /opt/mongo & cd /opt/mongo
7

+ Bước 4. 4. Khởi động dịch vụ mongod trên cả 3 máy chủ

sudo yum install -y mongodb-org
mkdir -p /opt/mongo & cd /opt/mongo
8

+ Bước 4. 5. Tạo người dùng khác có quyền quản lý trên từng cơ sở dữ liệu của mình

– Proof of user “admin” được tạo bên trên

sudo yum install -y mongodb-org
mkdir -p /opt/mongo & cd /opt/mongo
9____40____41

– Tạo người dùng với vai trò “dbOwner” trên từng cơ sở dữ liệu

mkdir db; mkdir log; chown mongod:mongod log db
2

Ví dụ. Tạo người dùng “người” có vai trò “dbOwner” trên “người” DB

mkdir db; mkdir log; chown mongod:mongod log db
3
mkdir db; mkdir log; chown mongod:mongod log db
4
mkdir db; mkdir log; chown mongod:mongod log db
5

– Kiểm tra lại các tài khoản vừa tạo

mkdir db; mkdir log; chown mongod:mongod log db
6
[mongodb-org-3.6]
name=MongoDB Repository
baseurl=https://repo.mongodb.org/yum/redhat/6/mongodb-org/3.6/x86_64/
gpgcheck=1
enabled=1
gpgkey=https://www.mongodb.org/static/pgp/server-3.6.asc
6______48
mkdir db; mkdir log; chown mongod:mongod log db
9

– Connect to database “People” by account “People” vừa được tạo ở trên

vi /etc/hosts  //Add thêm 3 dòng sau
0
vi /etc/hosts  //Add thêm 3 dòng sau
1
vi /etc/hosts  //Add thêm 3 dòng sau
2

kiểm tra

vi /etc/hosts  //Add thêm 3 dòng sau
3____54____55
vi /etc/hosts  //Add thêm 3 dòng sau
6
vi /etc/hosts  //Add thêm 3 dòng sau
7

– Tạo siêu người dùng có đầy đủ quyền

mkdir db; mkdir log; chown mongod:mongod log db
6
[mongodb-org-3.6]
name=MongoDB Repository
baseurl=https://repo.mongodb.org/yum/redhat/6/mongodb-org/3.6/x86_64/
gpgcheck=1
enabled=1
gpgkey=https://www.mongodb.org/static/pgp/server-3.6.asc
6______60
10.128.0.2 mongo1
10.128.0.3 mongo2
10.128.0.4 mongo3
1

– Kiểm tra siêu người dùng tài khoản

10.128.0.2 mongo1
10.128.0.3 mongo2
10.128.0.4 mongo3
2
10.128.0.2 mongo1
10.128.0.3 mongo2
10.128.0.4 mongo3
3
10.128.0.2 mongo1
10.128.0.3 mongo2
10.128.0.4 mongo3
4

Như vậy, qua bài lab này mình đã hướng dẫn các bạn xây dựng hệ thống Master Slave trong Mongo