使用VisualVM,我可以看到两种类型来连接远程主机。
jstatd
JMX
所以我尝试使用 JMX ,我遵循了很多教程但到目前为止没有运气。
目前,我的桌面和一个运行java服务器应用程序的linux盒子。 我正在尝试在桌面上设置VisualVM客户端,以查看在linux机器上运行的java应用程序。
我在linux上的java应用程序的start.sh脚本中添加了以下JAVA_OPTS脚本。
JMX_PORT="-Dcom.sun.management.jmxremote.port=33333" <-- allowed on firewall
JMX_SSL="-Dcom.sun.management.jmxremote.ssl=false"
JMX_AUTH="-Dcom.sun.management.jmxremote.authenticate=false"
JMX_IP="-Djava.rmi.server.hostname=xx.xx.xx.xx" <-- where linux box NAT ip.
linux上的Java应用程序已成功启动,jmx选项添加了start.sh,我假设没有错误或警告。
当我尝试添加JMX连接时,它说它无法连接到它。
我检查了33333是否被阻止,但事实并非如此,我可以通过桌面上的telnet使用端口连接到该IP。
我是否应该为VisualVM打开任何其他端口?
要使用JMX,我是否还需要进行其他设置,例如RMI注册服务器或jstatd策略文件创建并启动jstat守护程序?我认为这只是针对jstatd连接,所以我没有追求那个教程。
答案 0 :(得分:2)
最简单的方法是在服务器和桌面之间使用openvpn隧道,而不是在防火墙上移除NAT。我是这样做的,它就像一个魅力。
答案 1 :(得分:1)
我没有其他线索如何解决这个问题所以最终使用ssh隧道。
现在使用在VisualVm上添加新的jmx连接成功添加了远程主机。
REF。 VisualVM over ssh