ActiveMQ消息中间 使用JMX穿透过防火墙进行监控

中间件 10/26 阅读 10140 views次 人气 0
摘要:

ActiveMQ是Apache出品,是最流行的、能力强劲的且开源消息服务总线。ActiveMQ是一个完全支持JMS1.1和J2EE1.4规范的JMS Provider实现。

无防火墙下activemq的JMX配置:

1、修改activemq.xml

路径:${ACTIVEMQ_HOME}/conf/activemq.xml

Broker节点,增加属性useJmx="true"

managementContext节点,修改createConnector改为true,增加jmx端口属性:connectorPort="11099" 

2、修改jmx用户名密码配置

默认用户名密码:admin/activemq

可通过以下文件增删用户名密码和权限:

配置用户名和权限:${ACTIVEMQ_HOME}/conf/jmx.access

配置用户名和密码:${ACTIVEMQ_HOME}/conf/jmx.password

3、修改启动文件activemq

路径:${ACTIVEMQ_HOME}/bin/activemq

先查找看看有没有ACTIVEMQ_SUNJMX_START的key,如果有则修改,如果没有则在文件最后添加ACTIVEMQ_SUNJMX_START的key值如下:

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"


按照以上配置后,服务器开启防火墙,并且开放了11099端口,发现还是不能正常监控activemq,而且telnet 11099端口是通的,出现这个问题的原因可以参考:

需要修改activemq的JMX配置如下:

1、${ACTIVEMQ_HOME}/bin/activemq 只保留

ACTIVEMQ_SUNJMX_START="$ACTIVEMQ_SUNJMX_START -Djava.rmi.server.hostname=$服务器的ip"

2、${ACTIVEMQ_HOME}/conf/activemq.xml 配置如下:

                                                                                

这里配置了两个端口,一个是jmx端口,另一个是rmi端口。

说明:之前的配置方案,只配置了jmx端口,rmi端口是随机的;而防火墙只开放了jmx端口,没有开放rmi端口,并且对于随机的rmi端口,是无法配置防火墙规则的故在此配置方案基础上,再增加一个12099(rmi端口)的防火墙入站规则,即可进行访问。

评论

表情
  1. 挺实用的!

    2018/10/27 回复

分享到: