主要参考http://www.jmkg.co.uk/2010/08/31/installing-activemq-on-ubuntu/,略有补充
1. 下载安装包,建立activemq用户,安装
下载最新的activemq,写此文时为5.7。
cd /opt/
tar xvzf xxxx/apache-activemq-5.7.0.tar.gz
ln -s apache-activemq-5.7.0 activemq
adduser 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
这里面主要有3项需要定制配置:
ACTIVEMQ_USER,运行activemq的用户,配置为刚才建立的activemq用户
ACTIVEMQ_DATA,activemq的data路径,存放真正的队列数据等,可以直接加在配置文件开头,目录权限需要为ACTIVEMQ_USER可写
JMX配置,这一项比较麻烦一点,主要是管理activemq的jmx连接配置,不配也能用,但是停activemq就只能是残酷的kill,好像不太安全,所以还是建议配置。可以按照以下内容:
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"
#ACTIVEMQ_SUNJMX_CONTROL=""
注意,我上面的配置里把jmxuser和jmxpassword改了,主要是改成了和安装包里的jmx默认用户名密码一致,安全起见,这里最好改成你自己定制的用户名密码,起码把密码改了。这个admin用户的权限在/opt/activemq/conf/jmx.access里,密码配置在/opt/activemq/conf/jmx.password里。这两个文件里的配置要和上面那行JMX URL里配置一致。另外还有重要的一点:
chmod 600 /opt/activemq/conf/jmx.*
如果权限不改成只有启动用户能读写的话,activemq直接起不来,而且没有任何地方报错。这样似乎差不多了,但还发现悲剧的一点,尽管上面的URL里配置的是127.0.0.1,activemq停止的时候却还是会去连`hostname`上的JMX,不知道为啥,报个错误类似如下:
Connecting to pid: 8515
INFO: failed to resolve jmxUrl for pid:8515, using default JMX url
然后就去连接
`hostname`上的JMX了,连不上就等30s然后暴力kill。所以一定要保证hostname是可以连接的,例如在/etc/hosts里配成127.0.0.1,不然activemq停止的时候发现JMX连接不上,还是一样kill。这样就大功告成了,可以启动和停止activemq了:
service activemq start
service activemq stop
打开浏览器可以访问http://[your host]:8161/上的activemq管理界面。
3. LOG的配置
log的配置在/opt/activemq/conf/log4j.properties,自己看一下就知道了,这里就不详述了。