尝试使用 Java 8

尝试使用 Java 8

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

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

当所有服务器都在不同的物理网络上时,它不起作用。当Server AServer C位于同一物理网络中时,它可以工作。在这两种情况下,跟踪路由都是网络配置中描述的路由,如下所示:

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)作为两个网络之间的桥梁和防火墙,防火墙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

答案1

这个问题问了很久了,但因为 @mark 表现出了一些兴趣,下面是我最终解决它的方法。问题是 JVM 绑定到本地 IP 地址而不是 VPN IP 地址。只需添加以下内容即可:

-Djava.rmi.server.hostname=10.170.0.14

到我想要监控的服务器。

答案2

有 3 件事值得一试(如果您还没有尝试过):1)完全摆脱所有机器上的防火墙规则,以进行测试(如果您可以这样做)2)如果 1)不是一种选择,请设置 3 个模仿设置的虚拟机,没有防火墙 - 这样做我发现自己的网络存在类似的问题。3)确保您的 openvpn 客户端配置文件中有一个 keepalive - 一行类似于:keepalive 10 120

我遇到的类似问题是,我的公司网络设置为在 x 秒不活动后丢弃所有传入的数据包,因此即使 VPN 在技术上仍然打开,所有单向的流量都会被丢弃,直到一些流量来自另一端,然后它才能正常工作。

答案3

尝试使用 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.玩得开心!

相关内容