【发布时间】:2010-12-02 12:36:46
【问题描述】:
我刚刚开始使用 JMX 来监控 activemq,我已经启用了远程监控。现在的问题是,我如何只允许本地主机访问 JMX API?或者有没有一种方法可以在不启用远程监控的情况下使用 JMX API..
【问题讨论】:
我刚刚开始使用 JMX 来监控 activemq,我已经启用了远程监控。现在的问题是,我如何只允许本地主机访问 JMX API?或者有没有一种方法可以在不启用远程监控的情况下使用 JMX API..
【问题讨论】:
在花费数小时谷歌搜索解决方案后,我看到了这篇文章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。
【讨论】: