我需要使用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,但由于我不是网络人员,所以没有任何意义。
更新配置图片
无法想象其他任何事情。如果其他人有一些线索,请提供建议。
答案 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似乎暂时可以做到这一点。现在需要努力让它更安全。