问题描述
我可以在同一系统上将JMC连接到JVM。但是,我要监视远程服务器。如何将本地JMC连接到远程JVM?
最佳解决办法
在服务器{Ubuntu}中编辑/etc/hosts
文件
127.0.1.1 server-name
用此行替换上面的行
<system-ip> server-name
次佳解决办法
在文档中对它们进行了全部描述:1.单击“帮助”->“ Java Mission Control帮助”。 2.检查JVM浏览器帮助。
有关更多详细信息,请签出:http://docs.oracle.com/javase/7/docs/technotes/guides/management/agent.html
首先,您需要在服务器上启用外部JMX代理。通过将相关的com.sun.management.jmxremote添加到要连接的服务器JVM的命令行标志中,可以完成此操作。这是可以使用的一组系统属性的简单示例。它们会禁用安全性和身份验证,因此切勿在生产中像这样使用它:
-Dcom.sun.management.jmxremote.port=7091
-Dcom.sun.management.jmxremote.authenticate=false
-Dcom.sun.management.jmxremote.ssl=false
接下来,您将在JMC中创建一个自定义连接。通过单击JVM浏览器中的“创建自定义连接”按钮来执行此操作:
在接下来的对话框中,您只需输入主机和端口。
如果遇到麻烦,请首先检查JMC随附的文档的最后一章(常见问题):
如果这样做没有帮助,那么JMC论坛将提供更广泛的常见问题解答:https://community.oracle.com/message/11182417#11182417。
第三种解决办法
我的环境是Linux中的jboss 7.1,试图将JMC连接到我的jboss实例,最初我遇到了连接被拒绝的问题-经过一天半的挖掘,远程JMC现在为我工作了,在standalone.conf中具有以下配置:
JBOSS_MODULES_SYSTEM_PKGS="org.jboss.byteman,org.jboss.logmanager"
JAVA_OPTS="$JAVA_OPTS -Djboss.modules.system.pkgs=$JBOSS_MODULES_SYSTEM_PKGS"
JAVA_OPTS="$JAVA_OPTS -Djava.util.logging.manager=org.jboss.logmanager.LogManager"
JAVA_OPTS="$JAVA_OPTS -Xbootclasspath/p:/apps/jboss-as-7.1.1.Final/modules/org/jboss/logmanager/main/jboss-logmanager-1.2.2.GA.jar"
JAVA_OPTS="$JAVA_OPTS -Xbootclasspath/p:/apps/jboss-as-7.1.1.Final/modules/org/jboss/logmanager/log4j/main/jboss-logmanager-log4j-1.0.0.GA.jar"
JAVA_OPTS="$JAVA_OPTS -Xbootclasspath/p:/apps/jboss-as-7.1.1.Final/modules/org/apache/log4j/main/log4j-1.2.16.jar"
JAVA_OPTS="$JAVA_OPTS -Dcom.sun.management.jmxremote=true"
JAVA_OPTS="$JAVA_OPTS -Dcom.sun.management.jmxremote.port=7091"
JAVA_OPTS="$JAVA_OPTS -Dcom.sun.management.jmxremote.rmi.port=7091"
JAVA_OPTS="$JAVA_OPTS -Dcom.sun.management.jmxremote.authenticate=false"
JAVA_OPTS="$JAVA_OPTS -Dcom.sun.management.jmxremote.ssl=false"
JAVA_OPTS="$JAVA_OPTS -XX:+UnlockCommercialFeatures"
JAVA_OPTS="$JAVA_OPTS -XX:+FlightRecorder"
参考资料