Apache ActiveMQ là một trình môi giới tin nhắn miễn phí, mã nguồn mở và dựa trên Java có thể được sử dụng để gửi tin nhắn giữa hai ứng dụng. Nó cung cấp nhiều tính năng bao gồm tính khả dụng cao và cân bằng tải tin nhắn cho dữ liệu của bạn. Nó cũng hỗ trợ một số ngôn ngữ máy khách và giao thức bao gồm Java, C, C++, Python, PHP, Perl, Ruby và C#. Nó dịch tin nhắn từ người gửi sang người nhận và cho phép giữ tin nhắn trong hàng đợi.
Trong hướng dẫn này, chúng ta sẽ tìm hiểu cách cài đặt Apache ActiveMQ trên CentOS 8.
Sau khi cài đặt Java, hãy xác minh phiên bản Java đã cài đặt bằng lệnh sau:
Bạn sẽ nhận được kết quả sau:
Sau khi tải xuống, hãy giải nén tệp đã tải xuống bằng lệnh sau:
Tiếp theo, đổi tên thư mục đã giải nén thành apache-activemq bằng lệnh sau:
Tiếp theo, bạn nên tạo một người dùng riêng cho Apache ActiveMQ. Bạn có thể tạo một người dùng mới có tên là activemq bằng lệnh sau:
Tiếp theo, hãy thay đổi quyền sở hữu thư mục apache-activemq thành activemq:
Sau khi hoàn tất, bạn có thể tiến hành bước tiếp theo.
Thêm các dòng sau:
Lưu và đóng tệp khi bạn hoàn tất. Sau đó, tải lại daemon systemd bằng lệnh sau:
Tiếp theo, khởi động dịch vụ ActiveMQ và cho phép nó khởi động sau khi hệ thống khởi động lại bằng lệnh sau:
Bạn có thể xác minh trạng thái của dịch vụ ActiveMQ bằng lệnh sau:
Bạn sẽ thấy đầu ra sau:
Theo mặc định, Apache ActiveMQ lắng nghe trên cổng 8161. Bạn có thể kiểm tra bằng lệnh sau:
Bạn sẽ nhận được kết quả sau:
Bạn có thể thay đổi bằng cách chỉnh sửa tệp sau:
Thay đổi các dòng sau bằng mật khẩu mong muốn của bạn:
Lưu và đóng tệp khi bạn hoàn tất. Sau đó, khởi động lại dịch vụ ActiveMQ để áp dụng các thay đổi:
Sau khi hoàn tất, bạn có thể tiến hành bước tiếp theo.
Trước tiên, hãy cài đặt máy chủ web Nginx bằng lệnh sau:
Sau khi Nginx được cài đặt, hãy tạo tệp cấu hình máy chủ ảo Nginx mới bằng lệnh sau:
Thêm các dòng sau:
Lưu và đóng tệp khi bạn hoàn tất. Sau đó, hãy kiểm tra Nginx xem có lỗi cú pháp nào không bằng lệnh sau:
Bạn sẽ thấy kết quả sau:
Cuối cùng, hãy khởi động dịch vụ Nginx và cho phép nó khởi động sau khi hệ thống khởi động lại bằng lệnh sau:
Bạn cũng có thể xác minh trạng thái Nginx bằng lệnh sau:
Bạn sẽ thấy kết quả sau:
Bạn có thể tắt SELinux bằng cách chỉnh sửa tệp /etc/selinux/config:
Tìm dòng sau:
Và thay thế bằng dòng sau:
Lưu và đóng tệp. Sau đó, khởi động lại hệ thống của bạn để áp dụng các thay đổi:
Tiếp theo, bạn sẽ cần cho phép cổng 80 và 8161 thông qua firewalld. Bạn có thể cho phép chúng bằng lệnh sau:
Tiếp theo, tải lại firewalld để áp dụng các thay đổi:
Sau khi hoàn tất, bạn có thể tiến hành bước tiếp theo.
Bây giờ, hãy mở trình duyệt web của bạn và nhập URL http://your-server-ip. Bạn sẽ thấy trang sau:
Bạn cũng có thể truy cập giao diện quản trị Apache ActiveMQ bằng cách truy cập URL http://your-server-ip/admin. Bạn sẽ được chuyển hướng đến trang sau:
Cung cấp tên người dùng, mật khẩu quản trị viên và nhấp vào nút Đăng nhập. Bạn sẽ thấy giao diện quản trị Apache ActiveMQ trong trang sau:
Đầu tiên, hãy tải xuống phiên bản mới nhất của tệp war Hawt.io bằng lệnh sau:
Tiếp theo, giải nén tệp đã tải xuống bằng lệnh sau:
Tiếp theo, di chuyển thư mục đã giải nén đến thư mục webapps bằng lệnh sau:
Tiếp theo, hãy thay đổi quyền sở hữu của thư mục webapps thành activemq bằng lệnh sau:
Tiếp theo, chỉnh sửa tệp môi trường Apache ActiveMQ và thực hiện một số thay đổi:
Tìm dòng sau:
Thay thế bằng dòng sau:
Lưu và đóng tệp khi bạn hoàn tất. Tiếp theo, mở tệp jetty.xml:
Thêm dòng sau bên dưới dòng <ref bean="rewriteHandler">:
Lưu và đóng tệp khi bạn hoàn tất, sau đó khởi động lại dịch vụ Apache ActiveMQ để áp dụng các thay đổi:
Sau khi hoàn tất, bạn có thể tiến hành bước tiếp theo.
Mở trình duyệt web của bạn và nhập URL http://your-server-ip/hawtio. Bạn sẽ được chuyển hướng đến trang đăng nhập Hawt.io:
Cung cấp tên người dùng và mật khẩu mặc định là admin/admin và nhấp vào nút Đăng nhập vào. Bạn sẽ thấy bảng điều khiển Hawt.io ở trang sau:
Trong hướng dẫn này, chúng ta sẽ tìm hiểu cách cài đặt Apache ActiveMQ trên CentOS 8.
Điều kiện tiên quyết
- Một máy chủ chạy CentOS 8.
- Mật khẩu gốc được cấu hình trên máy chủ của bạn.
Cài đặt Java
Apache ActiveMQ là một ứng dụng dựa trên Java nên Java phải được cài đặt trong hệ thống của bạn. Nếu chưa cài đặt, bạn có thể cài đặt bằng lệnh sau:
Mã:
dnf install java-11-openjdk-devel -y
Mã:
java --version
Mã:
openjdk 11.0.6 2020-01-14 LTSOpenJDK Runtime Environment 18.9 (bản dựng 11.0.6+10-LTS)OpenJDK 64-Bit Máy chủ VM 18.9 (bản dựng 11.0.6+10-LTS, chế độ hỗn hợp, chia sẻ)
Cài đặt và cấu hình Apache ActiveMQ
Đầu tiên, bạn sẽ cần tải xuống phiên bản ActiveMQ mới nhất từ trang web chính thức của họ. Bạn có thể tải xuống bằng lệnh sau:
Mã:
cd /opt
wget https://www.apache.org/dist/activemq/5.15.12/apache-activemq-5.15.12-bin.tar.gz
Mã:
tar -xvzf apache-activemq-5.15.12-bin.tar.gz
Mã:
mv apache-activemq-5.15.12 apache-activemq
Mã:
useradd activemq
Mã:
chown -R activemq:activemq /opt/apache-activemq/
Tạo tệp dịch vụ Systemd cho ActiveMQ
Tiếp theo, bạn sẽ cần tạo một tệp dịch vụ systemd để quản lý dịch vụ Apache ActiveMQ. Bạn có thể tạo nó bằng lệnh sau:
Mã:
nano /etc/systemd/system/apache-activemq.service
Mã:
[Unit]Description=Apache ActiveMQ Messaging ServerAfter=network.target[Service]Type=forkingUser=activemqGroup=activemqExecStart=/opt/apache-activemq/bin/activemq startExecStop=/opt/apache-activemq/bin/activemq stop[Install]WantedBy=multi-user.target
Mã:
systemctl daemon-reload
Mã:
systemctl start apache-activemq
systemctl enable apache-activemq
Mã:
systemctl status apache-activemq
Mã:
? apache-activemq.service - Máy chủ nhắn tin Apache ActiveMQ Đã tải: đã tải (/etc/systemd/system/apache-activemq.service; disabled; vendor preset: disabled) Đang hoạt động: đang hoạt động (đang chạy) kể từ Thu 2020-03-26 10:15:32 EDT; 12 giây trước Tiến trình: 9005 ExecStart=/opt/apache-activemq/bin/activemq start (code=exited, status=0/SUCCESS) PID chính: 9057 (java) Nhiệm vụ: 49 (giới hạn: 25028) Bộ nhớ: 197,5M CGroup: /system.slice/apache-activemq.service ??9057 /usr/bin/java -Xms64M -Xmx1G -Djava.util.logging.config.file=logging.properties -Djava.security.auth.login.config=/opt/apach>26/03 10:15:32 centos8 systemd[1]: Đang khởi động Apache ActiveMQ Messaging Server...26/03 10:15:32 centos8 activemq[9005]: THÔNG TIN: Đang tải '/opt/apache-activemq//bin/env'26/03 10:15:32 centos8 activemq[9005]: THÔNG TIN: Đang sử dụng java '/usr/bin/java'26/03 10:15:32 centos8 activemq[9005]: THÔNG TIN: Đang khởi động - kiểm tra các tệp nhật ký được chỉ định trong logging.properties và log4j.properties để biết thông tin chi tiết26/03 10:15:32 centos8 activemq[9005]: THÔNG TIN: Đã tạo tệp pid: '/opt/apache-activemq//data/activemq.pid' (pid '9057')Tháng 3 26 10:15:32 centos8 systemd[1]: Đã khởi động Apache ActiveMQ Messaging Server.
Mã:
netstat -antup | grep 8161
Mã:
tcp6 0 0 :::8161 :::* LISTEN 9289/java
Đặt mật khẩu quản trị Apache ActiveMQ
Theo mặc định, tên người dùng và mật khẩu quản trị Apache ActiveMQ được đặt thành admin/admin. Điều này rất nguy hiểm vì lý do bảo mật. Vì vậy, bạn nên thay đổi bằng mật khẩu an toàn.Bạn có thể thay đổi bằng cách chỉnh sửa tệp sau:
Mã:
nano /opt/apache-activemq/conf/jetty-realm.properties
Mã:
# username: password [,rolename ...]admin: activemqpassword, adminuser: userpassword, user
Mã:
systemctl restart apache-activemq
Cấu hình Nginx làm Proxy ngược cho Apache ActiveMQ
Tiếp theo, bạn nên cấu hình Nginx làm proxy ngược cho ActiveMQ.Trước tiên, hãy cài đặt máy chủ web Nginx bằng lệnh sau:
Mã:
dnf install nginx -y
Mã:
nano /etc/nginx/conf.d/activemq.conf
Mã:
server { listen 80; server_name your-server-ip; location / { proxy_pass http://127.0.0.1:8161; proxy_http_version 1.1; proxy_set_header Nâng cấp $http_upgrade; proxy_set_header Kết nối 'nâng cấp'; proxy_set_header Máy chủ $host; proxy_cache_bypass $http_upgrade; }}
Mã:
nginx -t
Mã:
nginx: cú pháp tệp cấu hình /etc/nginx/nginx.conf là oknginx: kiểm tra tệp cấu hình /etc/nginx/nginx.conf thành công
Mã:
systemctl start nginx
systemctl enable nginx
Mã:
systemctl status nginx
Mã:
? nginx.service - Máy chủ proxy ngược và HTTP nginx Đã tải: đã tải (/usr/lib/systemd/system/nginx.service; đã tắ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ứ năm 2020-03-26 10:27:45 EDT; 1 phút 9 giây trước Tiến trình: 9984 ExecStart=/usr/sbin/nginx (mã=thoát, trạng thái=0/THÀNH CÔNG) Tiến trình: 9982 ExecStartPre=/usr/sbin/nginx -t (mã=thoát, trạng thái=0/THÀNH CÔNG) Tiến trình: 9980 ExecStartPre=/usr/bin/rm -f /run/nginx.pid (mã=thoát, trạng thái=0/THÀNH CÔNG) PID chính: 9985 (nginx) Nhiệm vụ: 3 (giới hạn: 25028) Bộ nhớ: 5,5M CGroup: /system.slice/nginx.service ??9985 nginx: tiến trình chính /usr/sbin/nginx ??9986 nginx: tiến trình công nhân ??9987 nginx: tiến trình công nhân26/03 10:27:44 centos8 systemd[1]: Bắt đầu nginx HTTP và máy chủ proxy ngược...
Cấu hình SELinux và Tường lửa
Theo mặc định, SELinux được bật trong CentOS 8. Bạn nên tắt SELinux để Apache ActiveMQ hoạt động bình thường.Bạn có thể tắt SELinux bằng cách chỉnh sửa tệp /etc/selinux/config:
Mã:
nano /etc/selinux/config
Mã:
SELINUX=enforcing
Mã:
SELINUX=permissive
Tiếp theo, bạn sẽ cần cho phép cổng 80 và 8161 thông qua firewalld. Bạn có thể cho phép chúng bằng lệnh sau:
Mã:
firewall-cmd --zone=public --permanent --add-port=8161/tcp
firewall-cmd --zone=public --permanent --add-port=80/tcp
Mã:
firewall-cmd --reload
Truy cập Apache ActiveMQ
Lúc này, Apache ActiveMQ đã được cài đặt và định cấu hình.Bây giờ, hãy mở trình duyệt web của bạn và nhập URL http://your-server-ip. Bạn sẽ thấy trang sau:
Bạn cũng có thể truy cập giao diện quản trị Apache ActiveMQ bằng cách truy cập URL http://your-server-ip/admin. Bạn sẽ được chuyển hướng đến trang sau:
Cung cấp tên người dùng, mật khẩu quản trị viên và nhấp vào nút Đăng nhập. Bạn sẽ thấy giao diện quản trị Apache ActiveMQ trong trang sau:
Giám sát ActiveMQ bằng Hawt.io
Bạn cũng có thể theo dõi Apache ActiveMQ của mình bằng Hawt.io. Hawt.io là một bảng điều khiển web dạng mô-đun để quản lý ứng dụng dựa trên Java của bạn. Đây là một bảng điều khiển quản lý có thể cắm được hỗ trợ mọi loại JVM, mọi loại container bao gồm Tomcat, Jetty, Karaf, JBoss và nhiều loại khác nữa.Đầu tiên, hãy tải xuống phiên bản mới nhất của tệp war Hawt.io bằng lệnh sau:
Mã:
wget https://repo1.maven.org/maven2/io/hawt/hawtio-default/2.9.1/hawtio-default-2.9.1.war
Mã:
unzip hawtio-default-2.9.1.war -d hawtio
Mã:
mv hawtio /opt/apache-activemq/webapps/
Mã:
chown -R activemq:activemq /opt/apache-activemq/webapps/
Mã:
nano /opt/apache-activemq/bin/env
Mã:
ACTIVEMQ_OPTS="$ACTIVEMQ_OPTS_MEMORY -Djava.util.logging.config.file=logging.properties -Djava.security.auth.login.config=$ACTIVEMQ_CONF/login.config"
Mã:
ACTIVEMQ_OPTS="$ACTIVEMQ_OPTS_MEMORY -Djava.util.logging.config.file=logging.properties -Djava.security.auth.login.config=$ACTIVEMQ_CONF/login.config -Dhawtio.realm=activemq -Dhawtio.role=admins -Dhawtio.rolePrincipalClasses=org.apache.activemq.jaas.GroupPrincipal"
Mã:
nano /opt/apache-activemq/conf/jetty.xml
Mã:
Mã:
systemctl restart apache-activemq
Truy cập Giao diện web Hawt.io
Hawt.io hiện đã được cài đặt và định cấu hình. Đã đến lúc truy cập giao diện web của nó.Mở trình duyệt web của bạn và nhập URL http://your-server-ip/hawtio. Bạn sẽ được chuyển hướng đến trang đăng nhập Hawt.io:
Cung cấp tên người dùng và mật khẩu mặc định là admin/admin và nhấp vào nút Đăng nhập vào. Bạn sẽ thấy bảng điều khiển Hawt.io ở trang sau: