如何将对ActiveMQ的JMX API的访问限制为仅限localhost / intranet?

时间:2009-09-30 02:48:21

标签: jmx activemq

我刚刚开始使用JMX来监控activemq,我启用了远程监控。现在的问题是,我如何只允许localhost访问JMX API?或者有没有办法可以在不启用远程监控的情况下使用JMX API。

1 个答案:

答案 0 :(得分:6)

花了几个小时的时间在Google上搜索解决方案后,我看到了这篇文章https://wiki.internet2.edu/confluence/display/CPD/Monitoring+Tomcat+with+JMX,其中展示了如何为tomcat配置JMX以及如何通过rmi公开JMX。 选项“-Djava.rmi.server.hostname = test-idc.internet2.edu”表示运行tomcat的主机的名称。如果您没有指定主机名,那么尝试从远程计算机连接将返回“连接失败”。

您需要做的就是在activemq启动脚本中设置属性-Djava.rmi.server.hostname = localhost

if [ -z "$SUNJMX" ] ; then
  #SUNJMX="-Dcom.sun.management.jmxremote.port=1099 -Dcom.sun.management.jmxremote.authenticate=false -Dcom.sun.management.jmxremote.ssl=false"
  SUNJMX="-Dcom.sun.management.jmxremote -Djava.rmi.server.hostname=localhost"
fi

多数民众赞成...重启activemq,你只能从本地机器上访问jmx。