22

我能够在同一系统上将 JMC 连接到 JVM。但是,我想监视远程服务器。如何将本地 JMC 连接到远程 JVM?

4

4 回答 4

56

这在文档中都有描述:
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 。

于 2015-02-28T10:08:51.207 回答
11

我的环境是 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"
于 2016-07-15T13:43:42.993 回答
1

在使用以下标志运行目标 JVM 后,我能够在 VirtualBox(主机:Win10,来宾:Ubuntu 20.04)中看到 JVM:

java -XX:+FlightRecorder \
-Dcom.sun.management.jmxremote.port=1101 \
-Dcom.sun.management.jmxremote \
-Dcom.sun.management.jmxremote.authenticate=false \
-Dcom.sun.management.jmxremote.ssl=false \
MyApp
于 2021-11-23T21:09:17.290 回答
-8

在服务器 {Ubuntu} 中编辑/etc/hosts文件

127.0.1.1       server-name

用此行替换上面的行

<system-ip>     server-name
于 2015-03-03T13:42:22.440 回答