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