远程JMX监控Jconsole JDK 1.7.0_91

时间:2016-10-06 16:40:44

标签: java monitoring jmx

我需要使用JMX监控我的VCenter Server应用程序(它是一个Java应用程序)。

我已经看过很多关于此的帖子,但我仍然无法让它发挥作用。

VCenter正在我们内部网络的VM上运行。

在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)telnet到1100工作从我的笔记本电脑 3)尝试根据这篇文章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,但由于我不是网络人员,所以没有任何意义。

更新日志图片 enter image description here

更新配置图片

enter image description here

无法想象其他任何事情。如果其他人有一些线索,请提供建议。

1 个答案:

答案 0 :(得分:0)

最后能够让它为一项服务工作。希望人们不必花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似乎暂时可以做到这一点。现在需要努力让它更安全。