JVM调优使用工具04(远程连接)

2020/12/07 Jvm

JVM调优使用工具04(远程连接)

目录

基于jsatd实现远程连接

1.配置安全策略
  默认下,java安全策略比较严格,不允许jstatd直接启动。
。。。
。。。
。。。
没有考虑网络安全,不建议,有用到现搜吧。

基于JMX实现远程连接

匿名访问:

在jvm启动参数加入下面参数:
-Djava.rmi.server.hostname=172.16.2.xxx
-Dcom.sun.management.jmxremote.port=9999          //jmx监听端口
-Dcom.sun.management.jmxremote.rmi.port=1240      //指定RMI的通信端口,默认1099,
                                                  //需不需要不知道待验证
-Dcom.sun.management.jmxremote.authenticate=false //是否启用认证访问,默认true
-Dcom.sun.management.jmxremote.ssl=false     //是否启用ssl, 默认true
-jar xxx.jar                                //如果是jvm参数貌似可以不用

如果防火墙端口没开,需要开启对应端口。

当authenticate=false不启用时,线上不安全,

开启认证

linux下:
1.准备账号文件,名称jmxremote.access,内容:
            admin readwrite      //账号为admin,权限为读写,
                                 //可多个账号换行写就行
2.jmxremote.password,内容:
            admin admin124       //账号,对应密码
                                 //多个账号换行继续下

3.设置上面两个文件权限,执行命令:
  chmod 600 jmxremote.access
  chmod 600 jmxremote.password

4.设置启动参数:
-Djava.rmi.server.hostname=172.16.2.xxx
-Dcom.sun.management.jmxremote.port=9999          //jmx监听端口
-Dcom.sun.management.jmxremote.rmi.port=1240      //指定RMI的通信端口,默认1099,
                                                  //需不需要不知道待验证
-Dcom.sun.management.jmxremote.authenticate=true //是否启用认证访问,默认true
-Dcom.sun.management.jmxremote.access.file=./jmxremote.access
-Dcom.sun.management.jmxremote.password.file=./jmxremote.password
-Dcom.sun.management.jmxremote.ssl=false     //是否启用ssl, 默认true
-jar xxx.jar                                 //如果是jvm参数貌似可以不用


也需要开启对应防火墙端口,虽然安全,但比较繁琐。

还可以开启SSL,省略

基于SSH实现远程连接

比较安全,同时又方便配置。

请求过程:

本地--->连接SSH代理--->转发到你想请求的地址

配置流程:

1.在jvm启动参数加入下面参数:
-Djava.rmi.server.hostname=172.16.2.xxx
-Dcom.sun.management.jmxremote.port=1235          //jmx监听端口
-Dcom.sun.management.jmxremote.rmi.port=1250      //指定RMI的通信端口,默认1099,
                                                  //需不需要不知道待验证
-Dcom.sun.management.jmxremote.authenticate=false //是否启用认证访问,默认true
-Dcom.sun.management.jmxremote.ssl=false     //是否启用ssl, 默认true
-jar xxx.jar                                //如果是jvm参数貌似可以不用

2.本机执行如下命令,SSH端口转发

ssh -v -D 9696 root@172.16.2.xxx
    其中:
     -v  //verbose模式,打印详情
     -D  //动态应用程序级端口转发,将会分配一个Sock并监听本地端口

3.不用配置防护墙端口打开了,直接用visualvm连接:
    1.点击左上角VisualVM--->Preferences--->NetWork
                     Manual proxy settings:   //手动配置代理
                     SOCKS Proxy:172.16.2.xxx   Port:9696
                     删掉No Proxy hosts
                                    点击Apply
    2.File--->Add JMX Connection:
           Connection:172.16.2.xxx:1235
           勾选Do not require SSL connection
                      点击ok

Search

    Table of Contents