ActiveMQ常见操作

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  112  2017 ./

drwxr-xr-x 82 root  root      12288 129  2016 ../

lrwxrwxrwx  1 root  root         20 1025  2012 java-1.6.0-openjdk-amd64 -> java-6-openjdk-amd64/

-rw-r--r--  1 root  root       2387  418  2014 .java-1.6.0-openjdk-amd64.jinfo

lrwxrwxrwx  1 root  root         20 1119  2015 java-1.7.0-openjdk-amd64 -> java-7-openjdk-amd64/

-rw-r--r--  1 root  root       2439 1119  2015 .java-1.7.0-openjdk-amd64.jinfo

drwxr-xr-x  7 root  root       4096  728  2014 java-6-openjdk-amd64/

drwxr-xr-x  3 root  root       4096  121  2013 java-6-openjdk-common/

drwxr-xr-x  5 root  root       4096 1231  2015 java-7-openjdk-amd64/

lrwxrwxrwx  1 root  root         11  112  2017 java-7-oracle -> jdk1.7.0_60/

drwxr-xr-x  8 root  root       4096  58  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  821 16:33 ./

drwxr-xr-x 3 activemq activemq 4096  821 15:28 ../

-rw-rw-r-- 1 activemq activemq    8  822 11:40 lock

drwxrwxr-x 2 activemq activemq 4096  821 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下所有文件。

猜你喜欢

转载自blog.csdn.net/qq_40907977/article/details/112213505