1.安装JDK并配置环境变量
# vim /etc/profile
添加如下内容:export JAVA_HOME=/usr/java/jdk1.8.0_181
2.下载Linux版本的ActiveMQ
这里使用的是apache-activemq-5.11.1-bin.tar.gz
存放在/root/目录下
3.解压安装
# tar -zxvf apache-activemq-5.11.1-bin.tar.gz
# mv apache-activemq-5.11.1 activemq-01
# /root/activemq-01/bin查看是否有可执行权限
如果为绿色表示当前具有可执行权限,否则需要授权
# chmod 755 ./activemq-01
4.防火墙中打开对应的端口
ActiveMQ需要用到两个端口
一个是消息通讯的端口(默认为61616),可在conf/activemq.xml中修改
一个是管理控制台端口(默认为8161),可在conf/jetty.xml中修改
# vim /etc/sysconfig/iptables
添加
-A INPUT -m state --state NEW -m tcp -p tcp --dport 61616 -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 8161 -j ACCEPT
重启防火墙
# service iptables restart
增加阿里云入方向安全组规则
5.启动ActiveMQ
# cd /root/activemq-01/bin
# ./activemq start
6.打开管理界面
点击Manage ActiveMQ broker会提示登录,默认用户名和密码为admin/admin
7.安全配置
ActiveMQ如果不加入安全机制的话,任何人只要知道消息服务的具体地址(包括ip,端口,消息地址:队列或者主题地址),都可以肆无忌惮的发送、接收消息。
ActiveMQ的消息安全配置策略有多种,可以参考官网:http://activemq.apache.org/security.html,我们以简单授权配置为例:
在conf/activemq.xml文件中在broker标签最后加入以下内容
定义了一个root用户,密码为root,角色为users,admins,这个是消息队列的用户名和密码
设置admin管控台的用户名和密码
# vim /root/activemq-01/conf/jetty.xml
想要重新设置管控台的用户名和密码,需要确保authenticate的值为true(默认)
控制台的登录名和密码保存在conf/jetty-realm.properties中
格式为
用户名:密码,角色名
更新后重启
# /root/activemq-01/bin/linux-x86-64/activemq restart
刷新页面,录入新的用户名和密码后可以重新进入页面
8.设置开机启动
# cd /etc/init.d
创建activemq文件
# touch activemq
编辑activemq
# vim activemq
加入如下内容:
#!/bin/sh
#
# /etc/init.d/activemq
# chkconfig: 345 63 37
# description: activemq servlet container.
# processname: activemq 5.11.1
# Source function library.
#. /etc/init.d/functions
# source networking configuration.
#. /etc/sysconfig/network
export JAVA_HOME=/usr/java/jdk1.8.0_181
export CATALINA_HOME=/root/activemq-01
case $1 in
start)
sh $CATALINA_HOME/bin/activemq start
;;
stop)
sh $CATALINA_HOME/bin/activemq stop
;;
restart)
sh $CATALINA_HOME/bin/activemq stop
sleep 1
sh $CATALINA_HOME/bin/activemq start
;;
esac
exit 0
JAVA_HOME为jdk的安装目录
CATALINA_HOME为activemq的安装目录
给脚本添加可执行权限
# chmod +x activemq
添加到开机启动
# chkconfig --add activemq
添加完之后使用# chkconfig --list查看开机启动的服务中是否已经有activemq了
# chkconfig activemq on
重启服务器