查看内网主机的JVM信息

查看内网主机的JVM信息

Java程序部署在没有公网IP的主机上,登陆该主机需要跳板机。

方法一

Java程序启动参数

启动参数:

-Djava.rmi.server.hostname=localhost
-Dcom.sun.management.jmxremote
-Dcom.sun.management.jmxremote.port=32345
-Dcom.sun.management.jmxremote.rmi.port=32345
-Dcom.sun.management.jmxremote.authenticate=false
-Dcom.sun.management.jmxremote.ssl=false

注:-Djava.rmi.server.hostname=localhost

SSH做端口转发

$ ssh -L 32345:localhost:32345 remote-private-host

查看 JVM 信息

jconsole

$ jconsole service:jmx:rmi:///jndi/rmi://localhost:32345/jmxrmi

使用 visualvm

VisualVM -> 添加JMX连接,填入:localhost:32345

方法二

Java程序启动参数

添加类似如下的Java参数:

-Dcom.sun.management.jmxremote.port=32345
-Dcom.sun.management.jmxremote.rmi.port=32345
-Djava.rmi.server.hostname=
-Dcom.sun.management.jmxremote.authenticate=false
-Dcom.sun.management.jmxremote.ssl=false

本地创建 SSH tunnel

创建 ssh tunnel:

$ ssh -fN -D 4444 user@firewalled-host

查看JVM信息

使用jconsole

$ jconsole -J-DsocksProxyHost=localhost -J-DsocksProxyPort=4444 service:jmx:rmi:///jndi/rmi://localhost:32345/jmxrmi -J-DsocksNonProxyHosts=

使用 visualvm

VisualVM -> Preferences... -> 网络 -> 代理设置,手动设置代理,设置 SOCKS代理:localhost,端口:4444 (根据ssh tunnel端口指定)。然后,添加JMX连接,填入:localhost:32345

参考

  • https://stackoverflow.com/questions/15093376/jconsole-over-ssh-local-port-forwarding

你可能感兴趣的:(查看内网主机的JVM信息)