Cách thiết lập RabbitMQ Cluster trên Ubuntu 18.04 LTS

theanh

Administrator
Nhân viên
RabbitMQ là phần mềm message-broker nguồn mở ban đầu triển khai giao thức AMQP (Advanced Message Queuing Protocol) và mặc dù đã được phát triển và mở rộng để hỗ trợ các giao thức khác như STOMP (Streaming Text Oriented Messaging Protocol) và MQTT (Message Queuing Telemetry Transport).

Phần mềm message-queueing/message-broker được sử dụng để gửi và nhận tin nhắn giữa các hệ thống, ứng dụng và dịch vụ phân tán. RabbitMQ được viết bằng ngôn ngữ lập trình Erlang, hỗ trợ giao diện máy khách và thư viện cho tất cả các ngôn ngữ lập trình chính bao gồm Python, NodeJS, Java, PHP, v.v.

Trong hướng dẫn này, tôi sẽ chỉ cho bạn cách thiết lập RabbitMQ Cluster trên Ubuntu 18.04 Server. Tôi sẽ cài đặt RabbitMQ Cluster bằng ba máy chủ Ubuntu, bật RabbitMQ Management và thiết lập chính sách HA cho tất cả các nút.

Điều kiện tiên quyết​

  • 3 Máy chủ Ubuntu 18.04 trở lên10.0.15.21 hakase-ubuntu01
  • 10.0.15.22 hakase-ubuntu02
  • 10.0.15.23 hakase-ubuntu03
[*] Quyền root

Chúng ta sẽ làm gì?​

  1. Thiết lập tệp máy chủ
  2. Cài đặt máy chủ RabbitMQ
  3. Bật plugin quản lý
  4. Thiết lập UFW Tường lửa
  5. Thiết lập cụm RabbitMQ
  6. Thiết lập người dùng quản trị viên mới
  7. Cập nhật hàng đợi thiết lập RabbitMQ
  8. Kiểm tra

Bước 1 - Thiết lập tệp máy chủ​

Trong bước này, chúng ta sẽ chỉnh sửa tệp '/etc/hosts' trên tất cả các máy chủ và ánh xạ từng địa chỉ IP của máy chủ thành tên máy chủ.

Chỉnh sửa tệp '/etc/hosts' bằng trình soạn thảo vim.
Mã:
sudo vim /etc/hosts
Bây giờ hãy dán cấu hình sau vào đó.
Mã:
10.0.15.21 hakase-ubuntu0110.0.15.22 hakase-ubuntu0210.0.15.23 hakase-ubuntu03
Lưu và thoát.

Bước 2 - Cài đặt RabbitMQ Server​

Trước khi cài đặt RabbitMQ server, hãy đảm bảo rằng tất cả các kho lưu trữ đều được cập nhật.

Chạy lệnh sau.
Mã:
sudo apt update
sudo apt upgrade
Bây giờ hãy cài đặt các gói RabbitMQ server từ kho lưu trữ Ubuntu bằng lệnh apt bên dưới.
Mã:
sudo apt install rabbitmq-server -y
Sau khi cài đặt hoàn tất, hãy khởi động dịch vụ RabbitMQ và cho phép dịch vụ này khởi chạy mọi lúc khi khởi động hệ thống.
Mã:
sudo systemctl start rabbitmq-server
sudo systemctl enable rabbitmq-server
RabbitMQ Server đã được cài đặt trên Ubuntu 18.04.


Bước 3 - Kích hoạt RabbitMQ Management Plugins​

Trong bước này, chúng ta sẽ bật plugin quản lý RabbitMQ. Đây là giao diện cho phép bạn giám sát và xử lý máy chủ RabbitMQ từ trình duyệt web, chạy trên cổng TCP mặc định '15672'.

Bật plugin quản lý RabbitMQ bằng cách chạy lệnh bên dưới.
Mã:
sudo rabbitmq-plugins enable rabbitmq_management
Đảm bảo không có lỗi, sau đó khởi động lại dịch vụ RabbitMQ.
Mã:
sudo systemctl restart rabbitmq-server
Plugin quản lý RabbitMQ đã được bật.


Bước 4 - Thiết lập tường lửa UFW​

Trong hướng dẫn này, chúng tôi sẽ bật tường lửa UFW của Ubuntu. Chúng ta cần mở một số cổng sẽ được máy chủ RabbitMQ sử dụng.

Thêm dịch vụ ssh vào tường lửa UFW và bật dịch vụ tường lửa.
Mã:
sudo ufw allow ssh
sudo ufw enable
Bây giờ hãy thêm các cổng tcp RabbitMQ mới '5672,15672,4369,25672'.
Mã:
sudo ufw allow 5672,15672,4369,25672/tcp
Sau đó, hãy kiểm tra danh sách các cổng tường lửa UFW.
Mã:
sudo ufw status


Cấu hình tường lửa Ubuntu UFW đã hoàn tất và chúng ta đã sẵn sàng để thiết lập RabbitMQ Cluster.

Bước 5 - Thiết lập RabbitMQ Cụm​

Để thiết lập cụm RabbitMQ, chúng ta cần đảm bảo tệp '.erlang.cookie' giống nhau trên tất cả các nút. Chúng tôi sẽ sao chép tệp '.erlang.cookie' trên thư mục '/var/lib/rabbitmq' từ 'hakase-ubuntu01' sang nút khác 'hakase-ubuntu02' và 'hakase-ubuntu03'.

Sao chép tệp '.erlang.cookie' bằng lệnh scp từ 'hakase-ubuntu01'.
Mã:
scp /var/lib/rabbitmq/.erlang.cookie root@hakase-ubuntu02:/var/lib/rabbitmq/
scp /var/lib/rabbitmq/.erlang.cookie root@hakase-ubuntu03:/var/lib/rabbitmq/
Đảm bảo không có lỗi trên cả hai máy chủ.



Tiếp theo, chúng ta cần thiết lập 'hakase-ubuntu02' và 'hakase-ubuntu03' để tham gia cụm 'hakase-ubuntu01'.

Lưu ý:
  • Chạy lệnh bên dưới trên máy chủ hakase-ubuntu02' và 'hakase-ubuntu03'.
Khởi động lại dịch vụ RabbitMQ và dừng ứng dụng.
Mã:
sudo systemctl restart rabbitmq-server
sudo rabbitmqctl stop_app
Bây giờ hãy để máy chủ RabbitMQ trên cả hai nút tham gia cụm trên 'hakase-ubuntu01', sau đó khởi động ứng dụng.
Mã:
sudo rabbitmqctl join_cluster rabbit@hakase-ubuntu01
sudo rabbitmqctl start_app
Khi hoàn tất, hãy kiểm tra trạng thái cụm RabbitMQ.
Mã:
sudo rabbitmqctl cluster_status
Và bạn sẽ nhận được kết quả như bên dưới.



Cụm RabbitMQ đã được tạo, với hakase-ubuntu01, hakase-ubuntu02 và hakase-ubuntu03 làm thành viên.

Bước 6 - Thiết lập người dùng quản trị mới​

Trong hướng dẫn này, chúng ta sẽ tạo một người dùng quản trị mới cho máy chủ RabbitMQ và xóa người dùng 'khách' mặc định. Chúng tôi sẽ tạo một người dùng mới từ 'hakase-ubuntu01' và người dùng này sẽ tự động sao chép vào tất cả các nút trên cụm.

Thêm một người dùng mới có tên 'hakase' với mật khẩu 'aqwe123@'.
Mã:
sudo rabbitmqctl add_user hakase aqwe123@
Thiết lập người dùng 'hakase' làm quản trị viên.
Mã:
sudo rabbitmqctl set_user_tags hakase administrator
Và cấp cho người dùng 'hakase' quyền sửa đổi, ghi và đọc tất cả các vhost.
Mã:
sudo rabbitmqctl set_permissions -p / hakase ".*" ".*" ".*"
Bây giờ hãy xóa người dùng 'guest' mặc định.
Mã:
sudo rabbitmqctl delete_user guest
Và kiểm tra tất cả người dùng khả dụng.
Mã:
sudo rabbitmqctl list_users
Và bạn sẽ nhận được kết quả như bên dưới.



Một người dùng quản trị RabbitMQ mới đã được tạo và người dùng 'khách' mặc định đã bị xóa.

Bước 7 - Thiết lập RabbitMQ Phản chiếu hàng đợi​

Theo mặc định, nội dung của hàng đợi trong cụm RabbitMQ nằm trên một nút duy nhất (nút mà hàng đợi được khai báo).

Thiết lập này là bắt buộc, chúng ta cần cấu hình cụm 'ha policy' để phản chiếu hàng đợi và sao chép tới tất cả các nút cụm. Nếu nút lưu trữ hàng đợi chủ bị lỗi, bản sao cũ nhất sẽ được thăng cấp lên bản sao mới miễn là nó được đồng bộ hóa, tùy thuộc vào chính sách 'ha-mode' và 'ha-params'.

Dưới đây là một số ví dụ về chính sách ha của RabbitMQ.

Thiết lập chính sách ha có tên là 'ha-all', tất cả các hàng đợi trên cụm RabbitMQ sẽ phản chiếu tới tất cả các nút trên cụm.
Mã:
sudo rabbitmqctl set_policy ha-all ".*" '{"ha-mode":"all"}'
Thiết lập chính sách ha có tên là 'ha-two', tất cả tên hàng đợi bắt đầu bằng 'two.', sẽ phản chiếu tới hai nút trên cụm.
Mã:
sudo rabbitmqctl set_policy ha-two "^two\." \
 '{"ha-mode":"exactly","ha-params":2,"ha-sync-mode":"automatic"}'
Thiết lập chính sách khả dụng cao có tên là 'ha-nodes' sẽ chứa tất cả các hàng đợi có tên bắt đầu bằng 'nodes'. Chúng tôi sẽ phản chiếu tới hai nút cụ thể là 'hakase-ubuntu02' và 'hakase-ubuntu03' trong cụm.

Mã:
sudo rabbitmqctl set_policy ha-nodes "^nodes\." \
 '{"ha-mode":"nodes","ha-params":["rabbit@hakase-ubuntu02", "rabbit@hakase-ubuntu03"]}'
RabbitMQ liệt kê các chính sách ha.
Mã:
sudo rabbitmqctl list_policies;
RabbitMQ xóa chính sách ha cụ thể.
Mã:
sudo rabbitmqctl clear_policy ha-two

Bước 8 - Kiểm tra​

Mở trình duyệt web của bạn và nhập địa chỉ IP của nút có cổng '15672'.

http://10.0.15.21:15672/

Nhập tên người dùng 'hakase' với mật khẩu 'aqwe123@'.



Và bạn sẽ nhận được bảng điều khiển quản trị RabbitMQ như hiển thị bên dưới.



Trạng thái của tất cả các nút cụm đang hoạt động.

Bây giờ hãy nhấp vào menu tab 'Admin' và nhấp vào menu 'Users' ở bên cạnh.

Và bạn sẽ nhận được người dùng hakase trong danh sách.



Bây giờ hãy nhấp vào menu tab 'Admin' và nhấp vào menu 'Policies' ở bên cạnh.

Và bạn sẽ nhận được tất cả các chính sách ha RabbitMQ mà chúng ta đã tạo.



Quá trình cài đặt và cấu hình RabbitMQ Cluster trên máy chủ Ubuntu 18.04 đã hoàn tất thành công.

Tham khảo​

 
Back
Bên trên