Jconsole通过VPN

我正在尝试使用jconsole监视远程jvm。 我需要通过OpenVPNnetworking进行监控,这可能是我的一部分问题。 这是networkingconfiguration:

Server A Server B Server C Jconsole JVM 10.171.0.1 <---> 10.170.0.1 <---> 10.170.0.14 

当所有服务器都在不同的物理networking上时,它不起作用。 当Server AServer C在同一个物理networking中工作。 在这两种情况下,traceroute都是networkingconfiguration中描述的traceroute,如下所示:

 traceroute to 10.170.0.14 (10.170.0.14), 64 hops max, 52 byte packets 1 10.170.0.1 (10.170.0.1) 114.440 ms 109.152 ms 109.581 ms 2 10.170.0.14 (10.170.0.14) 234.207 ms 228.535 ms 229.630 ms 

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

[编辑]

所有的系统都是linux。

Jmx的远程参数是:

 -Dcom.sun.management.jmxremote.port=8086 -Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.authenticate=false 

服务器Server B (10.170.0.1)用作两个networking之间的网桥和防火墙。 10.170.0.1的防火墙如下:

 *filter :INPUT DROP [1000:900000] :FORWARD DROP [0:0] :OUTPUT DROP [0:0] -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT -A INPUT -s 127.0.0.1 -j ACCEPT -A INPUT -p tcp -m tcp --dport 22 -j ACCEPT -A INPUT -p tcp -m tcp --dport 80 -j ACCEPT -A INPUT -p tcp -m tcp --dport 443 -j ACCEPT -A INPUT -p tcp -m tcp --dport 389 -j ACCEPT -A INPUT -p udp -m udp --dport 1194 -j ACCEPT -A INPUT -p tcp -m tcp --dport 8086 -j ACCEPT -A INPUT -p udp -m udp --dport 8086 -j ACCEPT -A INPUT -p icmp -m icmp --icmp-type 8 -m state --state NEW,RELATED,ESTABLISHED -j ACCEPT -A INPUT -p icmp -m icmp --icmp-type 13 -m state --state NEW,RELATED,ESTABLISHED -j ACCEPT -A INPUT -p icmp -m icmp --icmp-type 30 -m state --state NEW,RELATED,ESTABLISHED -j ACCEPT -A FORWARD -s 10.171.0.1 -d 10.170.0.0/16 -j ACCEPT -A FORWARD -s 10.171.0.3 -d 10.170.0.0/16 -j ACCEPT -A FORWARD -s 10.170.0.0/16 -d 10.171.0.0/16 -m state --state RELATED,ESTABLISHED -j ACCEPT -A FORWARD -j REJECT --reject-with icmp-port-unreachable -A OUTPUT -m state --state NEW,RELATED,ESTABLISHED -j ACCEPT COMMIT 

很长时间以来,这个问题被问到,但由于@mark显示了一些兴趣,这里是我最终如何解决它。 问题是JVM绑定到本地IP地址,而不是VPN IP地址。 这一切都是通过添加:

 -Djava.rmi.server.hostname=10.170.0.14 

到我想监视的服务器。

如果你还没有这样做,值得尝试3件事:1)彻底摆脱所有机器上的防火墙规则,进行testing(如果你能做到这一点)2)如果1)不是一个选项,build立3个虚拟机模仿设置,没有防火墙 – 这样做,我发现我自己的networking类似的问题。 3)确保你的openvpn客户端configuration文件中有keepalive – 一行如下:keepalive 10 120

我遇到的类似的问题是,我的公司networking设置为在x秒不活动状态之后丢弃任何入站数据包,因此,即使VPN在技术上仍处于开放状态,所有stream向的stream量都将被丢弃,直到某些stream量从另一侧stream出,那么它的工作。

尝试与Java 8

1.剪切并粘贴到你的jvm启动脚本中:

 -Dcom.sun.management.jmxremote.port=1616 -Dcom.sun.management.jmxremote.rmi.port=1618 -Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.authenticate=false 

2.通过SSH连接(并避免VPN限制):

 ssh solr@remote-host -L 1616:remote-host:1616 -L 1618:remote-host:1618 

3.在电脑上打开jconsole

 jconsole localhost:1616 

4.玩得开心!