Cách cài đặt RabbitMQ Server trên CentOS 7

theanh

Administrator
Nhân viên
RabbitMQ là phần mềm môi giới tin nhắn doanh nghiệp mã nguồn mở và miễn phí. Phần mềm được viết bằng Erlang và triển khai Giao thức xếp hàng tin nhắn nâng cao (AMQP). Phần mềm cung cấp thư viện máy khách bằng tất cả các ngôn ngữ lập trình chính. Phần mềm hỗ trợ nhiều giao thức nhắn tin, xếp hàng tin nhắn, xác nhận giao hàng, định tuyến linh hoạt đến hàng đợi, nhiều loại trao đổi. Phần mềm cũng cung cấp HTTP-API dễ sử dụng, công cụ dòng lệnh và giao diện người dùng web để quản lý RabbitMQ.

Trong hướng dẫn này, chúng ta sẽ cài đặt RabbitMQ trên máy chủ CentOS 7.

Điều kiện tiên quyết
  • Máy chủ CentOS 7 tối thiểu
  • Quyền root. Hướng dẫn này được viết dưới dạng người dùng root, nếu bạn đăng nhập dưới dạng người dùng sudo, hãy chạy sudo -i.

Cập nhật Hệ thống Cơ sở​

Trước khi cài đặt bất kỳ gói nào, bạn nên cập nhật các gói và kho lưu trữ bằng lệnh sau.
Mã:
yum -y update
Sau khi hệ thống của bạn được cập nhật, hãy tiến hành cài đặt Erlang.

Cài đặt Erlang​

RabbitMQ được viết bằng Ngôn ngữ Erlang, trong hướng dẫn này, chúng ta sẽ cài đặt phiên bản mới nhất của Erlang vào máy chủ. Erlang không có trong kho lưu trữ YUM mặc định, do đó bạn sẽ cần cài đặt kho lưu trữ EPEL. Chạy lệnh sau để thực hiện tương tự.
Mã:
yum -y install epel-release
Mã:
yum -y update
Bây giờ hãy cài đặt Erlang bằng lệnh sau.
Mã:
yum -y install erlang socat
Bây giờ bạn có thể kiểm tra phiên bản Erlang bằng lệnh sau.
Mã:
erl -version
Bạn sẽ nhận được kết quả sau.
Mã:
[root@liptan-pc ~]# erl -versionErlang (ASYNC_THREADS,HIPE) (BEAM) emulator version 5.10.4
Để chuyển sang shell Erlang, bạn có thể nhập lệnh sau.
Mã:
erl
Shell sẽ thay đổi và bạn sẽ nhận được kết quả sau.
Mã:
Erlang R16B03-1 (erts-5.10.4) [nguồn] [64-bit] [async-threads:10] [hipe] [kernel-poll:false]Eshell V5.10.4 (hủy bằng ^G)1>
Bạn có thể thoát khỏi shell bằng cách nhấn ctrl + C hai lần. Erlang hiện đã được cài đặt trên hệ thống của bạn, giờ bạn có thể tiến hành cài đặt RabbitMQ.

Cài đặt RabbitMQ​

RabbitMQ cung cấp gói RPM cho các hệ thống Linux doanh nghiệp được biên dịch trước và có thể cài đặt trực tiếp. Yêu cầu phụ thuộc duy nhất là cài đặt Erlang vào hệ thống. Vì chúng tôi đã cài đặt Erlang nên chúng tôi có thể tiến hành tải RabbitMQ. Tải xuống gói Erlang RPM bằng cách chạy lệnh.
Mã:
wget https://www.rabbitmq.com/releases/rabbitmq-server/v3.6.10/rabbitmq-server-3.6.10-1.el7.noarch.rpm
Nếu bạn chưa cài đặt wget, bạn có thể chạy lệnh yum -y install wget. Bạn luôn có thể tìm thấy liên kết đến phiên bản mới nhất của trang tải xuống RabbitMQ.

Nhập khóa GPG bằng cách chạy:
Mã:
rpm --import https://www.rabbitmq.com/rabbitmq-release-signing-key.asc
Cài đặt gói RPM bằng cách chạy:
Mã:
rpm -Uvh rabbitmq-server-3.6.10-1.el7.noarch.rpm
RabbitMQ hiện đã được cài đặt trên hệ thống của bạn.

Khởi động RabbitMQ​

Bạn có thể khởi động quy trình máy chủ RabbitMQ bằng cách chạy lệnh sau.
Mã:
systemctl start rabbitmq-server
Để tự động khởi động RabbitMQ khi khởi động, hãy chạy lệnh sau lệnh.
Mã:
systemctl enable rabbitmq-server
Để kiểm tra trạng thái của máy chủ RabbitMQ, hãy chạy:
Mã:
systemctl status rabbitmq-server
Bạn sẽ nhận được đầu ra sau nếu khởi động thành công.
Mã:
? rabbitmq-server.service - RabbitMQ broker Đã tải: đã tải (/usr/lib/systemd/system/rabbitmq-server.service; đã bật; cài đặt trước của nhà cung cấp: đã tắt) Đang hoạt động: đang hoạt động (đang chạy) kể từ Thứ bảy 2017-07-15 18:59:14 UTC; 3 phút 22 giây trước PID chính: 29006 (beam.smp) Trạng thái: "Đã khởi tạo" CGroup: /system.slice/rabbitmq-server.service ??29006 /usr/lib64/erlang/erts-9.0/bin/beam.smp -W w -A 64 -P 1048576 -t 5000000 -stbt db -zdbbl 32000 -K tr... ??29149 /usr/lib64/erlang/erts-9.0/bin/epmd -daemon ??29283 erl_child_setup 1024 ??29303 inet_gethost 4 ??29304 inet_gethost 415 tháng 7 18:59:13 centos rabbitmq-server[29006]: Đang khởi động broker...15 tháng 7 18:59:14 centos rabbitmq-server[29006]: đơn vị systemd để kiểm tra kích hoạt: "rabbitmq-server.service"15 tháng 7 18:59:14 centos systemd[1]: Đã khởi động RabbitMQ broker.15 tháng 7 18:59:14 centos rabbitmq-server[29006]: đã hoàn thành với 0 plugin.

Sửa đổi Firewall và SELinux Rules​

Nếu bạn đã cài đặt và chạy firewalld, bạn sẽ phải cho phép cổng 8161 đi qua tường lửa. Chạy lệnh sau để thực hiện tương tự.
Mã:
firewall-cmd --zone=public --permanent --add-port=4369/tcp
firewall-cmd --zone=public --permanent --add-port=25672/tcp
firewall-cmd --zone=public --permanent --add-port=5671-5672/tcp
firewall-cmd --zone=public --permanent --add-port=15672/tcp
firewall-cmd --zone=public --permanent --add-port=61613-61614/tcp
firewall-cmd --zone=public --permanent --add-port=1883/tcp
firewall-cmd --zone=public --permanent --add-port=8883/tcp
Mã:
firewall-cmd --reload
Nếu bạn đã bật SELinux, bạn sẽ phải chạy lệnh sau để cho phép dịch vụ RabbitMQ.
Mã:
setsebool -P nis_enabled 1

Truy cập Bảng điều khiển web​

Bật bảng điều khiển quản lý web RabbitMQ bằng cách chạy:
Mã:
rabbitmq-plugins enable rabbitmq_management
Cấp quyền sở hữu các tệp RabbitMQ cho người dùng RabbitMQ bằng cách chạy:
Mã:
chown -R rabbitmq:rabbitmq /var/lib/rabbitmq/
Bây giờ bạn sẽ cần tạo một người dùng quản trị cho bảng điều khiển quản lý web RabbitMQ. Chạy các lệnh sau để thực hiện tương tự.
Mã:
rabbitmqctl add_user admin StrongPassword
 rabbitmqctl set_user_tags admin administrator
 rabbitmqctl set_permissions -p / admin ".*" ".*" ".*"
Đổi admin thành tên người dùng bạn muốn cho người dùng quản trị viên. Hãy chắc chắn thay đổi StrongPassword thành một mật khẩu rất mạnh.

Để truy cập bảng quản trị của RabbitMQ, hãy sử dụng trình duyệt web yêu thích của bạn và mở URL sau.
Mã:
http://Your_Server_IP:15672/
Bạn sẽ thấy trang đăng nhập sau.



Sau khi đăng nhập, bạn sẽ thấy bảng điều khiển quản trị.



Bạn có thể tìm thấy danh sách người dùng, máy chủ ảo, chính sách tại tab Quản trị của bảng điều khiển. Bạn nên xóa người dùng Khách vì lý do bảo mật.



Bạn có thể tìm thấy danh sách hàng đợi tin nhắn tại tab Hàng đợi. Bạn có thể tạo hàng đợi mới hoặc xóa hàng đợi hiện có thông qua giao diện này.



Bạn có thể tìm danh sách kết nối hiện tại trên tab Kết nối



Tương tự, bạn có thể tìm các kênh và trao đổi tại các tab tương ứng của chúng.


Kết luận​

Bây giờ bạn có thể dễ dàng cài đặt RabbitMQ để xếp hàng tin nhắn giữa các quy trình, máy chủ và máy khách. Để tìm hiểu thêm về RabbitMQ, bạn có thể duyệt trang RabbitMQ.
 
Back
Bên trên