Centos7 Apache ActiveMQ5
安装指南
说明:
虽然ActiveMQ目前已经不是开发时的主要消息中间件, 但是对于简单使用JMS的场景而言, ActiveMQ仍然是一个比较成熟、稳定的框架,可以供初学者、小微企业快速上手。
虽然Apache ActiveMQ目前有多种安装方式, 使用Docker 也可以快速获得本地测试环境,但是对于初学者而言, Docker 在提供方便性的同时, 也增加了Docker 技术的复杂性,对于初学者而言,并不能很好的聚焦于ActiveMQ本身。而且ActiveMQ虽然网络资源很多, 但是往往资料过于老旧,或者更多的集中于SpringBoot 和ActiveMQ的集成,对于如何把ActiveMQ安装和详细的端口配置,往往语焉不详, 对于Jetty Web管理端(admin)和具体的JMS 端口的用户密码配置,更是资料不够详细。有鉴于此,本文档可以指导用户逐步操作,只需要复制、粘贴即可,最终配置一个可以远程访问的ActiveMQ环境。
本文档提供了在CentOS7 中安装Apache ActiveMQ 5的操作指南,可以用来指导初级开发人员和企业运维人员搭建Apache MQ的开发、测试环境

目录
执行记录 - 1 -
一、 安装JDK - 2 -
1.1 目的 - 2 -
1.2 安装指南 - 2 -
1.2.1 查看系统默认java - 2 -
二、 安装ActiveMQ - 3 -
2.1 目的 - 3 -
2.1.1 创建ActiveMQ - 3 -
2.1.2 安装MQ依赖 - 4 -
2.1.3 安装ActiveMQ - 4 -
2.2 更改权限 - 4 -
2.2.1 配置ActiveMQ 服务自启动 - 5 -
2.3 ActiveMQ 配置 - 6 -
2.3.1 配置Web管理页面 - 6 -
2.3.1.1 更改jetty.xml - 6 -
2.3.2 设置访问密码 - 8 -
2.4 ActiveMQ服务器安装和配置确认 - 10 -
执行记录
编号
日期
描述
版本
执行人
审核
1
2021/11/22
ActiveMQ安装
0.1
安装JDK目的本项目开发过程中,需要使用使用ActiveMQ,为保证项目应用运行正常,需要安装相应的JDK版本。 这里数据库采用的是JDK 1.8。
在服务器完成操作系统升级之后, 进行此项操作。
安装指南查看系统默认java确认:
java -version

确定JDK 安装路径:
readlink -f $(which java)
使用java -version 和 javac检测如下:

如果不能成功运行javac,则需要重新安装JDK。
安装ActiveMQ目的本章节指导安装ActiveMQ 5.16.5,请首先下载apache-activemq-5.16.5-bin.tar.gz。
创建ActiveMQ在CentOS7 上, 创建单独的activemq账号:
sudo groupadd activemq
创建activemq组:
sudo useradd -M -s /bin/nologin -g activemq -d /usr/local/activemq activemq
安装MQ依赖安装ActiveMQ下载安装包,并解压:使用如下命令登陆:
sudo mkdir /usr/local/activemq
sudo tar xvf apache-activemq-*tar.gz -C /usr/local/activemq --strip-components=1
配置目录权限进入activemq目录:
cd /usr/local/activemq
授权整个Activemq目录:
sudo chgrp -R activemq /usr/local/activemq
sudo chmod -R g+r /usr/local/activemq/conf
sudo chmod g+x /usr/local/activemq/bin
通过如下命令, 验证ActiveMQ 运行:
sudo ./bin/activemq console
配置ActiveMQ 服务自启动运行如下命令,创建服务文件:
sudo vi /etc/systemd/system/activemq.service
内容:
[Unit]
Description=ActiveMQ service
After=network.target
[Service]
Type=forking
ExecStart=/usr/local/activemq/bin/activemq start
ExecStop=/usr/local/activemq/bin/activemq stop
User=root
Group=root
Restart=always
RestartSec=9
StandardOutput=syslog
StandardError=syslog
SyslogIdentifier=activemq
[Install]
WantedBy=multi-user.target
重新加载daemon:
sudo systemctl daemon-reload
启动:
sudo systemctl start activemq
sudo systemctl enable activemq
sudo systemctl is-enabled activemq
启动后,可以验证端口是否已占用:
sudo netstat -nl|grep 61616

控制台的登录用户名密码保存在conf/jetty-realm.properties文件中,内容如下:

ActiveMQ使用的是jetty服务器, 打开conf/jetty.xml文件,配置admin页面可以远程访问,修改host的值为0.0.0.0, 任意地址可以访问:
<bean id="jettyPort">
<!-- the default port number for the web console -->
<property name="host" value="0.0.0.0"/>
<property name="port" value="8161"/>
</bean>
打开conf/activemq.xml,修改broker 元素的名称,内容如下:
<broker xmlns="http://activemq.apache.org/schema/core" brokerName="change_name" dataDirectory="${activemq.data}">
添加完成后, activemq.xml如下所示:

然后,在命令行,添加相关端口到防火墙:
sudo firewall-cmd --add-port=61616/tcp –permanent
sudo firewall-cmd --add-port=8161/tcp –permanent
sudo firewall-cmd --reload
添加完成之后,可以查询这些端口是否开放:
sudo firewall-cmd --query-port=61616/tcp
sudo firewall-cmd --query-port=8161/tcp
执行结果:

针对61616的JMS访问,可以设置必要的用户名和密码。 ActiveMQ 通过JAAS 来设置认证和授权,通过login.config 文件来配置访问的用户信息。用户信息可以存在于下述文件:
users.propertiesgroups.properties修改user.properties 文件, 根据需要更改用户信息:

同时,需要在activemq.xml中,增加验证插件:
sudo vim activemq.xml
文件内容如下:
<plugins>
<!-- Configure authentication; Username, passwords and groups -->
<simpleAuthenticationPlugin>
<users>
<authenticationUser username="system" password="${activemq.password}" groups="users,admins"/>
</users>
</simpleAuthenticationPlugin>
</plugins>
保存并重启ActiveMQ 服务。
sudo systemctl restart activemq
ActiveMQ服务器安装和配置确认日期
描述
执行人
客户方签字
确认该服务器ActiveMQ安装操作已完成