相关疑难解决方法(0)

有没有人有远程JMX JConsole工作?

我似乎从来没有让这个工作过去.目前,我知道它不起作用.

但是我们启动了Java进程:

-Dcom.sun.management.jmxremote
-Dcom.sun.management.jmxremote.port=6002
-Dcom.sun.management.jmxremote.authenticate=false
-Dcom.sun.management.jmxremote.ssl=false
Run Code Online (Sandbox Code Playgroud)

我可以telnet到端口,"有东西"(也就是说,如果我不启动过程,没有任何答案,但如果我这样做,它确实),但我无法让JConsole工作填写IP和港口.

似乎它应该如此简单,但没有错误,没有噪音,没有任何东西.只是不起作用.

有人知道这个热门提示吗?

jmx jconsole

115
推荐指数
9
解决办法
15万
查看次数

为何在配置JMX时Java打开3个端口?

我在Centos6上使用JDK7运行我的Java程序.我使用以下选项启用JMX:

JAVA_OPTS="${JAVA_OPTS} -Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.port=9123 -Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.authenticate=false -Dcom.sun.management.jmxremote.local.only=true"
Run Code Online (Sandbox Code Playgroud)

当我检查打开哪些端口时,我发现了2个额外的随机端口:

netstat -plunt | grep java
tcp        0      0 :::9123                     :::*                        LISTEN      13295/java
tcp        0      0 :::59927                    :::*                        LISTEN      13295/java
tcp        0      0 :::59928                    :::*                        LISTEN      13295/java
Run Code Online (Sandbox Code Playgroud)

请注意,每次重启仅配置的端口9123保持不变,另外两个端口会更改值.

netstat -plunt | grep java
tcp        0      0 :::9123                     :::*                        LISTEN      13331/java
tcp        0      0 :::59932                    :::*                        LISTEN      13331/java
tcp        0      0 :::59933                    :::*                        LISTEN      13331/java
Run Code Online (Sandbox Code Playgroud)

什么是2个额外端口以及为什么打开它们?

如何配置2个额外的随机端口?

如何配置::ffff:127.0.0.1将在JMX打开的所有端口之前显示?

为什么在与JConsole连接时不使用一个端口?

添加以澄清答案

不幸的是,附加的随机端口仍然打开为了提醒您,我使用Centos 6.我的Tomcat设置看起来像这样(Tomcat不部署任何应用程序):

CATALINA_OPTS="${CATALINA_OPTS}  -XX:+DisableAttachMechanism -Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.authenticate=false -Dcom.sun.management.jmxremote.local.only=true -Djava.rmi.server.useLocalHostname=true -Djava.rmi.server.useCodebaseOnly=true -Dcom.sun.management.jmxremote.port=9123 -Dcom.sun.management.jmxremote.rmi.port=9123" …
Run Code Online (Sandbox Code Playgroud)

java jmx rmi

49
推荐指数
2
解决办法
4万
查看次数

无法使用服务连接到localhost:jmx/rmi // .....在Vagrant中使用Visual VM和Tomcat时

我有一个运行tomcat的流浪汉VM,我想在一些测试中连接VisualVM来监控VM的性能.

我按照本指南设置了这个配置,建议创建一个setenv.sh脚本并将其放在/ usr/share/tomcat7/bin中.我发现setenv没有运行,所以我将以下内容放在/etc/tomcat/tomcat.conf中:

JAVA_OPTS="-Dcom.sun.management.jmxremote=true - Dcom.sun.management.jmxremote.port=9901 -Dcom.sun.management.jmxremote.ssl=false
Run Code Online (Sandbox Code Playgroud)

m.sun.management.jmxremote.authenticate = false -Djava.rmi.server.hostname = localhost -Dcom.sun.management.jmxremote.rmi.port = 9909"

我相信配置正在运行以下,我可以看到端口处于活动状态:

[vagrant@localhost ~]$ netstat -lntu | grep 99
tcp6       0      0 :::9901                 :::*                    LISTEN
tcp6       0      0 :::9909                 :::*                    LISTEN
Run Code Online (Sandbox Code Playgroud)

这是来自vagrant文​​件的配置:

  # Ports enabled for VisualVM to work. 
  config.vm.network "forwarded_port", guest: 9901, host: 9905
  config.vm.network "forwarded_port", guest: 9909, host: 9907
Run Code Online (Sandbox Code Playgroud)

但是在输入以下配置后,或者关闭(已经尝试过127.0.0.1并启用"不需要SSL"的所有内容,我得到的是"".

我也尝试过端口9901,9905,9909.

VisualVM配置

有关如何解决这个问题的任何想法?

java port tomcat visualvm vagrant

8
推荐指数
0
解决办法
5127
查看次数

如何使用VisualVM和JMX?

我已经尝试了书中的每一个食谱,但今天的事情都不会奏效......

我正在尝试使用VisualVM来配置我在远程服务器上运行的Java应用程序,所以我用Google搜索并用Google搜索并搜索了这样做的方法,我最终得到了这个解决方案:

java -Dcom.sun.management.jmxremote \
  -Dcom.sun.management.jmxremote.port=9199 \
  -Dcom.sun.management.jmxremote.local.only=false \
  -Dcom.sun.management.jmxremote.authenticate=false \
  -Dcom.sun.management.jmxremote.ssl=false \
  -jar bin/felix.jar
Run Code Online (Sandbox Code Playgroud)

运行这个会让我JMX运行我猜,所以我可以看到他在9199运行:

java      21947        root    9u  IPv6 1811434      0t0  TCP *:7192 (LISTEN)
java      26376        root   14u  IPv6 1844518      0t0  TCP *:9199 (LISTEN)
Run Code Online (Sandbox Code Playgroud)

此外,我可以测试该端口在Web上是否可见:

在此输入图像描述

现在,当我尝试在我的机器中打开VisualVM中的连接(也可以ping jmx服务器)时,会发生这种情况:

在此输入图像描述

在此输入图像描述

在此输入图像描述

我一定是如此愚蠢,以至于这个世界上的每个人都能把这个东西运转起来但是我.该死的...

编辑:我安装了wireshark来了解引擎盖下发生了什么,所以我看到了这个.一旦我在VisualVM中添加远程IP,wireshark就开始检测这个重复的活动:

在此输入图像描述

但是,如果我尝试添加新的JMX连接并要求他连接,则wireshark甚至不会抓取该连接尝试的单个数据包.

在此输入图像描述

在我看来VisualVM甚至没有尝试连接,尽管给出错误消息"无法连接"...... !! 这到底是怎么回事?

java jmx rmi visualvm jvisualvm

6
推荐指数
2
解决办法
1万
查看次数

标签 统计

java ×3

jmx ×3

rmi ×2

visualvm ×2

jconsole ×1

jvisualvm ×1

port ×1

tomcat ×1

vagrant ×1