通过JMX来监控管理ActiveMQ

1、修改ActiveMQ的配置文件activemq.xml

   
   
   
   
  1. <broker useJmx="true" persistent="true" brokerName="broker-master" xmlns="http://activemq.apache.org/schema/core"> 

使其useJmx属性为true,默认的jmx端口号为1099,可以通过设置managementContext的相关属性来修改。

2、修改ActiveMQ的启动文件bin/activemq

   
   
   
   
  1. ACTIVEMQ_SUNJMX_START="-Dcom.sun.management.jmxremote.port=11099" 
  2. ACTIVEMQ_SUNJMX_START="$ACTIVEMQ_SUNJMX_START -Dcom.sun.management.jmxremote.password.file=${ACTIVEMQ_CONF}/jmx.password" 
  3. ACTIVEMQ_SUNJMX_START="$ACTIVEMQ_SUNJMX_START -Dcom.sun.management.jmxremote.access.file=${ACTIVEMQ_CONF}/jmx.access" 
  4. ACTIVEMQ_SUNJMX_START="$ACTIVEMQ_SUNJMX_START -Dcom.sun.management.jmxremote.ssl=false" 
  5. ACTIVEMQ_SUNJMX_START="$ACTIVEMQ_SUNJMX_START -Dcom.sun.management.jmxremote" 
  6.  
  7. ACTIVEMQ_SUNJMX_CONTROL="--jmxurl service:jmx:rmi:///jndi/rmi://127.0.0.1:11099/jmxrmi --jmxuser controlRole --jmxpassword abcd1234" 

开启远端JMX端口11099,这里的端口与activemq.xml里面配置的jmx端口号(默认是1099)不能重复。

3、修改口令文件并设置口令文件的权限,否则启动activemq时会报错误

jmx.access

   
   
   
   
  1. admin readwrite 
  2. monitorRole readonly 
  3. controlRole readwrite 

jmx.password

   
   
   
   
  1. admin activemq 
  2. monitorRole abc123 
  3. controlRole abcd1234 

修改配置文件的权限:

   
   
   
   
  1. sudo  chmod 600  /opt/activemq/conf/jmx.password  
  2. sudo  chmod 600  /opt/activemq/conf/jmx.access 

4、修改/etc/hosts文件

把127.0.0.1替换为本机IP,例如:

   
   
   
   
  1. # 127.0.0.1             vm-108 localhost.localdomain localhost 
  2. 10.10.18.108            vm-108 localhost.localdomain localhost 

 

使用sudo ./activemq consoel启动activemqmq时会在控制台打印日志

启动activemq,查看jmx服务是否正常
5、打开jconsole.exe,在连接画面中填入服务器地址:
远程地址可填入:
 
   
   
   
   
  1. 10.10.18.108:1099 
  2. 或者 
  3. service:jmx:rmi:///jndi/rmi://10.10.18.108:1099/jmxrmi 

 用户名:controlRole

密码:abcd1234

使用JConsole监控ActiveMQ_第1张图片

连接成功后的管理画面

使用JConsole监控ActiveMQ_第2张图片

本文参考了:

http://blog.csdn.net/lucett/article/details/7024756