远程 JMX 监控 Jconsole JDK 1.7.0_91
Remote JMX monitoring Jconsole JDK 1.7.0_91
我需要使用 JMX 监控我的 VCenter Server 应用程序(这是一个 Java 应用程序)。
我已经看到许多关于此的 post 并已关注,但我仍然无法让它工作。
VCenter 运行 在我们内部网络的虚拟机上。
已在 wrapper.conf 文件中进行了这些更改
wrapper.java.additional.22="-Dcom.sun.management.jmxremote"
wrapper.java.additional.23="-Dcom.sun.management.jmxremote.port=1100"
wrapper.java.additional.24="-Dcom.sun.management.jmxremote.ssl=false"
wrapper.java.additional.25="-Dcom.sun.management.jmxremote.authenticate=false"
wrapper.java.additional.26="-Djava.rmi.server.hostname=hostname where vcenter runs"
#wrapper.java.additional.27="-Dcom.sun.management.jmxremote.rmi.port=1100"
我可以在本地将 Jconsole 连接到 1100 端口。我一启动服务,就看到端口正常监听
PS U:\> netstat -an | findstr 1100
TCP 0.0.0.0:1100 0.0.0.0:0 LISTENING
TCP [::]:1100 [::]:0 LISTENING
当我尝试从我的笔记本电脑连接它时,它会显示这个
PS U:\> netstat -an | findstr 1100
TCP 0.0.0.0:1100 0.0.0.0:0 LISTENING
TCP "ipofvcenterserver":1100 11.248.18.xx:51988 ESTABLISHED
TCP [::]:1100 [::]:0 LISTENING
[更新]
我注意到如果我添加 Dcom.sun.management.jmxremote.rmi.port=1100 并使用 jconsole 进行连接,则已建立的连接如下所示。但是 11.248.18.xxx 不是远程客户端(我的笔记本电脑)
的 IP 地址
PS U:\> netstat -an | Findstr 1100
TCP 0.0.0.0:1100 0.0.0.0:0 LISTENING
TCP ipofrmiserver:1100 11.248.18.xxx:56728 ESTABLISHED
TCP ipofrmiserver:1100 11.248.18.xxx:56729 ESTABLISHED
TCP [::]:1100 [::]:0 LISTENING
我看到已经建立了一些连接,但是 jconsole 仍然抱怨它无法连接
故障排除步骤已完成:
1) 关闭 vcenter 服务器计算机上的防火墙以保持简单
2) 从我的笔记本电脑远程登录到 1100
3) 尝试根据此 post https://meteatamel.wordpress.com/2012/02/13/jmx-rmi-vs-jmxmp/ 将 jmxremote_optional.jar 复制到 VMWARE_JAVA_HOME\lib 即 C:\Program Files\VMware\vCenter Server\jre\lib
4)能够ping通Vcenter运行所在服务器的主机名
5) 尝试没有这个 wrapper.java.additional.27="-Dcom.sun.management.jmxremote.rmi.port=1100"
6) 尝试过 tcpdump,但没有任何意义,因为我不是网络专家。
正在更新日志图像
正在更新配置映像
无法想象别的。如果还有人有什么线索,请指教。
终于能够让它为一项服务工作。希望人们不必花 3 天的时间来解决这个问题......
有问题的文件在 C:\Program Files\VMware\vCenter Server\vdcs\vdcserver\conf\server.xml
<Listener accessFile="${catalina.base}/conf/jmxremote.access" authenticate="false" bind="11.168.32.xx" className="com.springsource.tcserver.serviceability.rmi.JmxSocketListener" passwordFile="${catalina.base}/conf/jmxremote.password" port="${base.jmx.port}" useSSL="false"/>
上面的绑定值似乎覆盖了 wrapper.conf 属性,之前是 127.0.0.1。并将身份验证更改为 false 似乎可以暂时解决问题。现在需要努力使其更加安全。
我需要使用 JMX 监控我的 VCenter Server 应用程序(这是一个 Java 应用程序)。
我已经看到许多关于此的 post 并已关注,但我仍然无法让它工作。
VCenter 运行 在我们内部网络的虚拟机上。
已在 wrapper.conf 文件中进行了这些更改
wrapper.java.additional.22="-Dcom.sun.management.jmxremote"
wrapper.java.additional.23="-Dcom.sun.management.jmxremote.port=1100"
wrapper.java.additional.24="-Dcom.sun.management.jmxremote.ssl=false"
wrapper.java.additional.25="-Dcom.sun.management.jmxremote.authenticate=false"
wrapper.java.additional.26="-Djava.rmi.server.hostname=hostname where vcenter runs"
#wrapper.java.additional.27="-Dcom.sun.management.jmxremote.rmi.port=1100"
我可以在本地将 Jconsole 连接到 1100 端口。我一启动服务,就看到端口正常监听
PS U:\> netstat -an | findstr 1100
TCP 0.0.0.0:1100 0.0.0.0:0 LISTENING
TCP [::]:1100 [::]:0 LISTENING
当我尝试从我的笔记本电脑连接它时,它会显示这个
PS U:\> netstat -an | findstr 1100
TCP 0.0.0.0:1100 0.0.0.0:0 LISTENING
TCP "ipofvcenterserver":1100 11.248.18.xx:51988 ESTABLISHED
TCP [::]:1100 [::]:0 LISTENING
[更新] 我注意到如果我添加 Dcom.sun.management.jmxremote.rmi.port=1100 并使用 jconsole 进行连接,则已建立的连接如下所示。但是 11.248.18.xxx 不是远程客户端(我的笔记本电脑)
的 IP 地址PS U:\> netstat -an | Findstr 1100
TCP 0.0.0.0:1100 0.0.0.0:0 LISTENING
TCP ipofrmiserver:1100 11.248.18.xxx:56728 ESTABLISHED
TCP ipofrmiserver:1100 11.248.18.xxx:56729 ESTABLISHED
TCP [::]:1100 [::]:0 LISTENING
我看到已经建立了一些连接,但是 jconsole 仍然抱怨它无法连接
故障排除步骤已完成:
1) 关闭 vcenter 服务器计算机上的防火墙以保持简单 2) 从我的笔记本电脑远程登录到 1100 3) 尝试根据此 post https://meteatamel.wordpress.com/2012/02/13/jmx-rmi-vs-jmxmp/ 将 jmxremote_optional.jar 复制到 VMWARE_JAVA_HOME\lib 即 C:\Program Files\VMware\vCenter Server\jre\lib 4)能够ping通Vcenter运行所在服务器的主机名 5) 尝试没有这个 wrapper.java.additional.27="-Dcom.sun.management.jmxremote.rmi.port=1100" 6) 尝试过 tcpdump,但没有任何意义,因为我不是网络专家。
正在更新日志图像
正在更新配置映像
无法想象别的。如果还有人有什么线索,请指教。
终于能够让它为一项服务工作。希望人们不必花 3 天的时间来解决这个问题......
有问题的文件在 C:\Program Files\VMware\vCenter Server\vdcs\vdcserver\conf\server.xml
<Listener accessFile="${catalina.base}/conf/jmxremote.access" authenticate="false" bind="11.168.32.xx" className="com.springsource.tcserver.serviceability.rmi.JmxSocketListener" passwordFile="${catalina.base}/conf/jmxremote.password" port="${base.jmx.port}" useSSL="false"/>
上面的绑定值似乎覆盖了 wrapper.conf 属性,之前是 127.0.0.1。并将身份验证更改为 false 似乎可以暂时解决问题。现在需要努力使其更加安全。