ActiveMQ的安装
1、下载安装包,建立activemq用户,安装
cd /opt/
wget http://apache.dataguru.cn/activemq/apache-activemq/5.7.0/apache-activemq-5.7.0-bin.tar.gz
adduser activemq
tar xvzf apache-activemq-5.7.0.tar.gz
ln -s apache-activemq-5.7.0 activemq
chown -R activemq.activemq apache-activemq-5.7.0
ln -sf /opt/activemq/bin/activemq /etc/init.d/
update-rc.d activemq defaults
2. 生成并编辑配置文件 #
/etc/init.d/activemq setup /etc/default/activemq
chmod 600 /etc/default/activemq
chown activemq. /etc/default/activemq
mkdir /var/xxxx
vim /etc/default/activemq
add ACTIVEMQ_DATA="/var/xxxx" #the 7 line
add ACTIVEMQ_USER="activemq" #the 51 line
修改/etc/security/limits.conf文件,添加如下内容。
activemq - nofile 32768
activemq soft nproc 32000
activemq hard nproc 32000
3.JMX配置
vim /etc/default/activemq
cancel note as follows
ACTIVEMQ_SUNJMX_START="-Dcom.sun.management.jmxremote.port=11099 "
ACTIVEMQ_SUNJMX_START="$ACTIVEMQ_SUNJMX_START -Dcom.sun.management.jmxremote.password.file=${ACTIVEMQ_CONF}/jmx.password"
ACTIVEMQ_SUNJMX_START="$ACTIVEMQ_SUNJMX_START -Dcom.sun.management.jmxremote.access.file=${ACTIVEMQ_CONF}/jmx.access"
ACTIVEMQ_SUNJMX_START="$ACTIVEMQ_SUNJMX_START -Dcom.sun.management.jmxremote.ssl=false"
ACTIVEMQ_SUNJMX_START="$ACTIVEMQ_SUNJMX_START -Dcom.sun.management.jmxremote"
ACTIVEMQ_SUNJMX_CONTROL="--jmxurl service:jmx:rmi:///jndi/rmi://127.0.0.1:11099/jmxrmi --jmxuser admin --jmxpassword activemq"
add note as follows
#ACTIVEMQ_SUNJMX_CONTROL=""
Remarks modify jmxuser and jmxpassword,ensure /opt/activemq/conf/jmx.access file and /opt/activemq/conf/jmx.password file site the same.
Give jmx.* file permission as follows
chmod 600 /opt/activemq/conf/jmx.*
4.启动和停止activemq#
/etc/init.d/activemq start
/etc/init.d/activemq stop
5.访问activemq管理界面#
http://x.x.x.x:1161/
user:admin
pwd:admin
ActiveMQ复制至新环境
1、新建activemq账号并且禁止该账号远程登录
adduser activemq
usermod -p '!' activemq
2、创建activemq的data目录并且修改目录的owner
mkdir -p /data/activemq/mkahadb
chown activemq.activemq -R /data/activemq
3、从SL1上拷贝activemq 应用程序及配置文件至SL1,
scp -r /opt/apache-activemq-5.13.4 had@SL1:./
scp /etc/default/activemq had@SL1:./
4、在SL1上用root用户拷贝至对应目录和软连接制作
mv /home/hadoop/apache-activemq-5.13.4 /opt/
mv /home/hadoop/activemq /etc/default/
chown activemq.activemq /etc/default/activemq
cd /opt
chown activemq.activemq -R apache-activemq-5.13.4
ln -s apache-activemq-5.13.4 activemq
ln -s /opt/activemq/bin/activemq /etc/init.d/activemq
5、设置activemq开机启动
update-rc.d activemq defaults
6、验证新环是否有jdk1.7的版本并且设置activemq 使用的jdk1.7版本
ll /usr/lib/jvm/
total 139056
drwxr-xr-x 6 root root 4096 1月 12 2017 ./
drwxr-xr-x 82 root root 12288 12月 9 2016 ../
lrwxrwxrwx 1 root root 20 10月 25 2012 java-1.6.0-openjdk-amd64 -> java-6-openjdk-amd64/
-rw-r--r-- 1 root root 2387 4月 18 2014 .java-1.6.0-openjdk-amd64.jinfo
lrwxrwxrwx 1 root root 20 11月 19 2015 java-1.7.0-openjdk-amd64 -> java-7-openjdk-amd64/
-rw-r--r-- 1 root root 2439 11月 19 2015 .java-1.7.0-openjdk-amd64.jinfo
drwxr-xr-x 7 root root 4096 7月 28 2014 java-6-openjdk-amd64/
drwxr-xr-x 3 root root 4096 1月 21 2013 java-6-openjdk-common/
drwxr-xr-x 5 root root 4096 12月 31 2015 java-7-openjdk-amd64/
lrwxrwxrwx 1 root root 11 1月 12 2017 java-7-oracle -> jdk1.7.0_60/
drwxr-xr-x 8 root root 4096 5月 8 2014 jdk1.7.0_60/
在启动脚本添加默认使用的jdk1.7版本
vim /etc/init.d/activemq
添加jdk1.7JAVA_HOME
export JAVA_HOME=/usr/lib/jvm/java-7-openjdk-amd64
7、启动activemq 验证是否启动正常
启动详情如下
:~# service activemq start
INFO: Loading '/etc/default/activemq'
INFO: Using java '/usr/lib/jvm/java-7-openjdk-amd64/bin/java'
INFO: Starting - inspect logfiles specified in logging.properties and log4j.properties to get details
INFO: changing to user 'activemq' to invoke java
INFO: pidfile created : '/opt/apache-activemq-5.13.4//data/activemq.pid' (pid '11611')
8、验证进程使用的jdk版本及内存大小
top -cu activemq
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
11611 activemq 20 0 36.9g 344m 14m S 1 0.1 0:08.92 /usr/lib/jvm/java-7-openjdk-amd64/bin/java -Xmx32g -Xmn8g -XX:+UseMembar -XX:MaxDirectMemorySize=32G -XX:+UseParNewGC -XX:+UseConcMarkSweepG
9、验证activemq数据目录是否有文件创建
ll /data/activemq/mkahadb/
total 16
drwxr-xr-x 3 activemq activemq 4096 8月 21 16:33 ./
drwxr-xr-x 3 activemq activemq 4096 8月 21 15:28 ../
-rw-rw-r-- 1 activemq activemq 8 8月 22 11:40 lock
drwxrwxr-x 2 activemq activemq 4096 8月 21 16:33 txStore/
10、验证activemq日志是否正常
SL1:/opt/activemq/data# tail activemq.log
2017-08-22 11:40:10,766 | INFO | Listening for connections at: nio://hdmaster:61618?maximumConnections=10000&wireFormat.maxFrameSize=104857600 | org.apache.activemq.transport.TransportServerThreadSupport | main
2017-08-22 11:40:10,777 | INFO | Connector nio started | org.apache.activemq.broker.TransportConnector | main
2017-08-22 11:40:10,787 | INFO | Apache ActiveMQ 5.13.4 (localhost, ID:hdmaster-38990-1503373209612-0:1) started | org.apache.activemq.broker.BrokerService | main
2017-08-22 11:40:10,795 | INFO | For help or more information please see: http://activemq.apache.org | org.apache.activemq.broker.BrokerService | main
2017-08-22 11:40:11,624 | INFO | No Spring WebApplicationInitializer types detected on classpath | /admin | main
2017-08-22 11:40:11,882 | INFO | ActiveMQ WebConsole available at http://0.0.0.0:8161/ | org.apache.activemq.web.WebConsoleStarter | main
2017-08-22 11:40:11,883 | INFO | ActiveMQ Jolokia REST API available at http://0.0.0.0:8161/api/jolokia/ | org.apache.activemq.web.WebConsoleStarter | main
2017-08-22 11:40:11,933 | INFO | Initializing Spring FrameworkServlet 'dispatcher' | /admin | main
2017-08-22 11:40:12,263 | INFO | No Spring WebApplicationInitializer types detected on classpath | /api | main
2017-08-22 11:40:12,306 | INFO | jolokia-agent: Using policy access restrictor classpath:/jolokia-access.xml | /api | main
11、验证端口是否开启及url是否可以访问
LS1:/opt/activemq/data# netstat -tnpl|egrep '8161|61616|61618'
tcp6 0 0 :::61616 :::* LISTEN 11611/java
tcp6 0 0 :::61618 :::* LISTEN 11611/java
tcp6 0 0 :::8161 :::* LISTEN 11611/java
http://192.106.100.412:1161/admin/index.jsp
如以上验证都无误,本次复制即为成功复制。
activemq迁移步骤
生产环境activemq迁移大致步骤如下:
1、确认各项目中配置的amq地址,是配置的IP地址(备注:100.1)还是短域名(备注:qq),以邮件的形式向大家确认,统一使用短域名qq;
2、先修改外网公网域名www.qq.com域名解析至新amq所在服务器的ip地址 (中午修改公网dns解析);
3、待公网dns在所有采集器解析生效后,查看新的mq地址所有生产者是否都过来了;
4、重新启动所有采集器,释放老的mq地址链接,去链接新的mq地址;该
5、观察新旧mq地址里面的队列信息变化;
6、与研发确认,何时解析服务器内部amq解析至hdmaster(备注:确认迁移后丢失的队列信息是否有影响);
7、通知对应同步程序、应用程序,对应服务调用mq地址都需要重新启动来获取新mq地址;
8、迁移activemq相关监控程序至hdmaster上和新建grafana画图中对应监控指标(备:之前的继续保留,用于对比观察,待没数据了再删除)。
ActiveMQ升级
分步指南
原则上使用root进行升级操作。ActiveMQ运行时会使用activemq这个用户
1、下载ActiveMQ的linux发布包,例如:apache-activemq-5.10.0-bin.tar.gz
2、解压到/opt目录下,新的ActiveMQ会在apache-activemq-5.10.0这个目录下,修改这个目录的拥有者为activemq,并限制jmx.password文件的权限。然后复制老版本的配置文件
cd /opt
tar xzf [xxx]/apache-activemq-5.10.0-bin.tar.gz
chown -R activemq.activemq apache-activemq-5.10.0
cd apache-activemq-5.10.0/conf
chmod 600 jmx.password
mv activemq.xml activemq.xml.bak
cp -p /opt/activemq/conf/activemq.xml activemq.xml
mv log4j.properties log4j.properties.bak
cp -p /opt/activemq/conf/log4j.properties log4j.properties
3、停止当前运行的老版本ActiveMQ
service activemq stop
4、将/opt/ativemq的符号链接指向新版本
cd /opt
rm activemq
ln -s apache-activemq-5.10.0 activemq
5、启动ActiveMQ,由于符号链接已经指向新版本,这时候启动的将会是新版本的ActiveMQ
service activemq start
有时候,版本升级可能会涉及到ActiveMQ的db的兼容问题,这时候,可以删除老的数据,例如kahadb下所有文件。