如何在 CentOS 8 上安装 Apache ActiveMQ 和 Hawt.io如何在 CentOS 8 上安装 Apache ActiveMQ 和 Hawt.io如何在 CentOS 8 上安装 Apache ActiveMQ 和 Hawt.io如何在 CentOS 8 上安装 Apache ActiveMQ 和 Hawt.io
  • 文章
  • 正则表达式
    • 工具
  • 登录
找到的结果: {phrase} (显示: {results_count} 共: {results_count_total})
显示: {results_count} 共: {results_count_total}

加载更多搜索结果...

搜索范围
模糊匹配
搜索标题
搜索内容
发表 admin at 2025年2月28日
类别
  • 未分类
标签

如何在 CentOS 8 上安装 Apache ActiveMQ 和 Hawt.io

在此页

  1. 先决条件
  2. 安装Java
  3. 安装和配置 Apache ActiveMQ
  4. 为 ActiveMQ 创建系统服务文件
  5. 设置 Apache ActiveMQ 管理员密码
  6. 将 Nginx 配置为 Apache ActiveMQ 的反向代理
  7. 配置 SELinux 和防火墙
  8. 访问 Apache ActiveMQ
  9. 使用 Hawt.io 监控 ActiveMQ
  10. 访问 Hawt.io 网络界面
  11. 结论

Apache ActiveMQ 是一种免费、开源且基于 Java 的消息代理,可用于在两个应用程序之间发送消息。它提供了许多功能,包括数据的高可用性和消息负载平衡。它还支持多种语言的客户端和协议,包括 Java、C、C++、Python、PHP、Perl、Ruby 和 C#。它将消息从发送者转换为接收者,并允许将消息保存在队列中。

在本教程中,我们将学习如何在 CentOS 8 上安装 Apache ActiveMQ。

先决条件

  • 一台运行 CentOS 8 的服务器。
  • 在您的服务器上配置了根密码。

安装Java

Apache ActiveMQ 是基于 Java 的应用程序,因此您的系统中必须安装 Java。如果没有安装,可以使用以下命令安装:

dnf install java-11-openjdk-devel -y

安装 Java 后,使用以下命令验证已安装的 Java 版本:

java --version

您应该得到以下输出:

openjdk 11.0.6 2020-01-14 LTS
OpenJDK Runtime Environment 18.9 (build 11.0.6+10-LTS)
OpenJDK 64-Bit Server VM 18.9 (build 11.0.6+10-LTS, mixed mode, sharing)

安装和配置 Apache ActiveMQ

首先,您需要从其官方网站下载最新版本的 ActiveMQ。您可以使用以下命令下载它:

cd /opt
wget https://www.apache.org/dist/activemq/5.15.12/apache-activemq-5.15.12-bin.tar.gz

下载后,使用以下命令解压缩下载的文件:

tar -xvzf apache-activemq-5.15.12-bin.tar.gz

接下来,使用以下命令重命名提取的目录 apache-activemq:

mv apache-activemq-5.15.12 apache-activemq

接下来,为 Apache ActiveMQ 创建一个单独的用户是个好主意。您可以使用以下命令创建一个名为 activemq 的新用户:

useradd activemq

接下来,将 apache-activemq 目录的所有权更改为 activemq:

chown -R activemq:activemq /opt/apache-activemq/

完成后,您可以继续下一步。

为 ActiveMQ 创建系统服务文件

接下来,您需要创建一个 systemd 服务文件来管理 Apache ActiveMQ 服务。您可以使用以下命令创建它:

nano /etc/systemd/system/apache-activemq.service

添加以下行:

[Unit]
Description=Apache ActiveMQ Messaging Server
After=network.target

[Service]
Type=forking
User=activemq
Group=activemq

ExecStart=/opt/apache-activemq/bin/activemq start
ExecStop=/opt/apache-activemq/bin/activemq stop

[Install]
WantedBy=multi-user.target

完成后保存并关闭文件。然后,使用以下命令重新加载 systemd 守护进程:

systemctl daemon-reload

接下来,使用以下命令启动 ActiveMQ 服务并使其在系统重启后启动:

systemctl start apache-activemq
systemctl enable apache-activemq

您可以使用以下命令验证 ActiveMQ 服务的状态:

systemctl status apache-activemq

您应该看到以下输出:

? apache-activemq.service - Apache ActiveMQ Messaging Server
   Loaded: loaded (/etc/systemd/system/apache-activemq.service; disabled; vendor preset: disabled)
   Active: active (running) since Thu 2020-03-26 10:15:32 EDT; 12s ago
  Process: 9005 ExecStart=/opt/apache-activemq/bin/activemq start (code=exited, status=0/SUCCESS)
 Main PID: 9057 (java)
    Tasks: 49 (limit: 25028)
   Memory: 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>

Mar 26 10:15:32 centos8 systemd[1]: Starting Apache ActiveMQ Messaging Server...
Mar 26 10:15:32 centos8 activemq[9005]: INFO: Loading '/opt/apache-activemq//bin/env'
Mar 26 10:15:32 centos8 activemq[9005]: INFO: Using java '/usr/bin/java'
Mar 26 10:15:32 centos8 activemq[9005]: INFO: Starting - inspect logfiles specified in logging.properties and log4j.properties to get details
Mar 26 10:15:32 centos8 activemq[9005]: INFO: pidfile created : '/opt/apache-activemq//data/activemq.pid' (pid '9057')
Mar 26 10:15:32 centos8 systemd[1]: Started Apache ActiveMQ Messaging Server.

默认情况下,Apache ActiveMQ 侦听端口 8161。您可以使用以下命令检查它:

netstat -antup | grep 8161

您应该得到以下输出:

tcp6       0      0 :::8161                 :::*                    LISTEN      9289/java 

设置 Apache ActiveMQ 管理员密码

默认情况下,Apache ActiveMQ 管理员用户名和密码设置为 admin/admin。出于安全原因,这是非常危险的。所以建议改成安全密码。

您可以通过编辑以下文件来更改它:

nano /opt/apache-activemq/conf/jetty-realm.properties

使用您想要的密码更改以下行:

# username: password [,rolename ...]
admin: activemqpassword, admin
user: userpassword, user

完成后保存并关闭文件。然后,重新启动 ActiveMQ 服务以应用更改:

systemctl restart apache-activemq

完成后,您可以继续下一步。

将 Nginx 配置为 Apache ActiveMQ 的反向代理

接下来推荐配置Nginx作为ActiveMQ的反向代理。

首先,使用以下命令安装 Nginx Web 服务器:

dnf install nginx -y

安装 Nginx 后,使用以下命令创建一个新的 Nginx 虚拟主机配置文件:

nano /etc/nginx/conf.d/activemq.conf

添加以下行:

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 Upgrade $http_upgrade;
        proxy_set_header Connection 'upgrade';
        proxy_set_header Host $host;
        proxy_cache_bypass $http_upgrade;
     }
}

完成后保存并关闭文件。然后,使用以下命令检查 Nginx 是否存在任何语法错误:

nginx -t

您应该看到以下输出:

nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful

最后,使用以下命令启动 Nginx 服务并使其在系统重启后启动:

systemctl start nginx
systemctl enable nginx

您还可以使用以下命令验证 Nginx 状态:

systemctl status nginx

您应该看到以下输出:

? nginx.service - The nginx HTTP and reverse proxy server
   Loaded: loaded (/usr/lib/systemd/system/nginx.service; disabled; vendor preset: disabled)
   Active: active (running) since Thu 2020-03-26 10:27:45 EDT; 1min 9s ago
  Process: 9984 ExecStart=/usr/sbin/nginx (code=exited, status=0/SUCCESS)
  Process: 9982 ExecStartPre=/usr/sbin/nginx -t (code=exited, status=0/SUCCESS)
  Process: 9980 ExecStartPre=/usr/bin/rm -f /run/nginx.pid (code=exited, status=0/SUCCESS)
 Main PID: 9985 (nginx)
    Tasks: 3 (limit: 25028)
   Memory: 5.5M
   CGroup: /system.slice/nginx.service
           ??9985 nginx: master process /usr/sbin/nginx
           ??9986 nginx: worker process
           ??9987 nginx: worker process

Mar 26 10:27:44 centos8 systemd[1]: Starting The nginx HTTP and reverse proxy server...

配置 SELinux 和防火墙

CentOS 8 默认开启 SELinux,建议关闭 SELinux 以保证 Apache ActiveMQ 正常运行。

您可以通过编辑 /etc/selinux/config 文件来禁用 SELinux:

nano /etc/selinux/config

找到以下行:

SELINUX=enforcing

并且,将其替换为以下行:

SELINUX=permissive

保存并关闭文件。然后,重新启动系统以应用更改:

接下来,您需要通过 firewalld 允许端口 80 和 8161。您可以使用以下命令允许它们:

firewall-cmd --zone=public --permanent --add-port=8161/tcp
firewall-cmd --zone=public --permanent --add-port=80/tcp

接下来,重新加载 firewalld 以应用更改:

firewall-cmd --reload

完成后,您可以继续下一步。

访问 Apache ActiveMQ

此时,Apache ActiveMQ 已安装并配置完毕。

现在,打开您的 Web 浏览器并输入 URL http://your-server-ip。您应该会看到以下页面:

您还可以通过访问 URL http://your-server-ip/admin 来访问 Apache ActiveMQ 管理界面。您将被重定向到以下页面:

提供您的管理员用户名和密码,然后单击“登录”按钮。您应该在以下页面中看到 Apache ActiveMQ 管理界面:

使用 Hawt.io 监控 ActiveMQ

您还可以使用 Hawt.io 监控您的 Apache ActiveMQ。 Hawt.io 是一个模块化的 Web 控制台,用于管理基于 Java 的应用程序。它是一个可插拔的管理控制台,支持任何类型的 JVM、任何类型的容器,包括 Tomcat、Jetty、Karaf、JBoss 等等。

首先,使用以下命令下载最新版本的 Hawt.io war 文件:

wget https://repo1.maven.org/maven2/io/hawt/hawtio-default/2.9.1/hawtio-default-2.9.1.war

接下来,使用以下命令解压缩下载的文件:

unzip hawtio-default-2.9.1.war -d hawtio

接下来,使用以下命令将提取的目录移动到 webapps 目录:

mv hawtio /opt/apache-activemq/webapps/

接下来,使用以下命令将 webapps 目录的所有权更改为 activemq:

chown -R activemq:activemq /opt/apache-activemq/webapps/

接下来,编辑 Apache ActiveMQ 环境文件并进行一些更改:

nano /opt/apache-activemq/bin/env

找到以下行:

ACTIVEMQ_OPTS="$ACTIVEMQ_OPTS_MEMORY -Djava.util.logging.config.file=logging.properties -Djava.security.auth.login.config=$ACTIVEMQ_CONF/login.config"

将其替换为以下行:

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"

完成后保存并关闭文件。接下来,打开 jetty.xml 文件:

nano /opt/apache-activemq/conf/jetty.xml

在 行下方添加以下行:

<bean class="org.eclipse.jetty.webapp.WebAppContext">
<property name="contextPath" value="/hawtio" />
<property name="resourceBase" value="${activemq.home}/webapps/hawtio" />
<property name="logUrlOnStart" value="true" />
</bean>

完成后保存并关闭文件,然后重新启动 Apache ActiveMQ 服务以应用更改:

systemctl restart apache-activemq

完成后,您可以继续下一步。

访问 Hawt.io Web 界面

Hawt.io 现已安装和配置。是时候访问它的网络界面了。

打开您的 Web 浏览器并输入 URL http://your-server-ip/hawtio。您将被重定向到 Hawt.io 登录页面:

以 admin/admin 提供默认用户名和密码,然后单击“登录”按钮。您应该在以下页面中看到 Hawt.io 仪表板:

结论

恭喜!您已在 CentOS 8 上成功安装 Apache ActiveMQ。有关更多信息,请访问 ActiveMQ 上的 Apache ActiveMQ 文档。

©2015-2025 艾丽卡 support@alaica.com