美文网首页
JVisualVM监控远程java应用程序进程(jstatd)

JVisualVM监控远程java应用程序进程(jstatd)

作者: 有梦想的虫子_2018 | 来源:发表于2020-09-17 19:00 被阅读0次

    一、环境

    本地 windos7
    远程 腾讯云服务器
    JDK1.8
    JVisualVM JDK自带

    二、服务器添加权限策略文件

    在服务器{JAVA_HOME}/bin目录下创建以.policy结尾的文件文件:jstatd.all.policy

    • 创建文件
    [root@localhost bin]# pwd
    /usr/java/jdk1.8.0_74/bin
    [root@localhost bin]# vim jstatd.all.policy
    
    • jstatd.all.policy 文件中写入一下内容
    grant codebase "file:${java.home}/../lib/tools.jar" {
      permission java.security.AllPermission;
    };
    
    • 创建完成
    [root@localhost bin]# ll
    -rwxr-xr-x 1 root root   7941 Jan 30  2016 jstatd
    -rw-r--r-- 1 root root    101 Sep 17 13:44 jstatd.all.policy
    

    三、启动jstatd服务

    在JAVA_HOME/bin目录中,执行以下命令:
    ./jstatd -J-Djava.security.policy=jstatd.all.policy -J-Djava.rmi.server.hostname=181.90.24.191 &

    注意:181.90.24.191 为腾讯云服务器公网IP

    [root@VM_0_12_centos bin]# ./jstatd -J-Djava.security.policy=jstatd.all.policy -J-Djava.rmi.server.hostname=181.90.24.191 &
    [1] 24723
    
    • jstatd参数介绍
    -J-Djava.security.policy=jstatdAllPolicy 安全策略文件
    -p 1099  指定启动端口
    -J-Djava.rmi.server.hostname=181.90.24.191  指定公网IP地址
    
    • 检查jstatd服务是否启动成功
    [root@VM_0_12_centos bin]# jps
    24723 Jstatd   启动成功
    30365 jar
    25567 Jps
    
    • 远程监测是否可以获得云服务器的java进程
    C:\Users\Administrator>jps 181.90.24.191
    Error communicating with remote host: Connection refused to host: 181.90.24.191; nested exception is:
            java.net.ConnectException: Connection timed out: connect
    

    我在这里被坑了,云服务器的安全组我只开放了1099端口,还需要再开放一个jstatd服务启动时的一个随机端口

    • 获取jstatd启动的端口
    [root@VM_0_12_centos bin]# netstat -anpt |grep jstatd
    tcp        0      0 0.0.0.0:1099            0.0.0.0:*               LISTEN      24723/jstatd        
    tcp        0      0 0.0.0.0:11602           0.0.0.0:*               LISTEN      24723/jstatd
    
    • 开发组策略中添加11602端口
      image.png

    我提前关闭了云服务器的防火墙

    • 关闭云服务器防火墙
      service iptables start 开启
      service iptables stop 关闭
      service iptables status 防火墙状态
    [root@localhost bin]# service iptables status
    Redirecting to /bin/systemctl status  iptables.service
    ● iptables.service - IPv4 firewall with iptables
       Loaded: loaded (/usr/lib/systemd/system/iptables.service; enabled; vendor preset: disabled)
       Active: inactive (dead) since Thu 2020-08-13 19:04:16 CST; 1 months 4 days ago
     Main PID: 444 (code=exited, status=0/SUCCESS)
    
    • 远程监测成功
    C:\Users\Administrator>jps 181.90.24.191
    30365 jar
    24723 Jstatd
    

    四、开启JVisualVM进行监控

    • 打开Java VisualVM
    C:\Users\Administrator>jvisualvm
    
    C:\Users\Administrator>
    
    The launcher has determined that the parent process has a console and will reuse it for its own console output.
    Closing the console will result in termination of the running program.
    Use '--console suppress' to suppress console output.
    Use '--console new' to create a separate console window.
    
    • 添加远程主机


      添加远程主机-1.png
      添加远程主机-2.png
    • 点击对应的java进程就可以看到监控信息


      远程监控信息.png

    面对每一道题目,要学会把自己的思维发散出去。每一篇文章只当自己对知识的总结!

    相关文章

      网友评论

          本文标题:JVisualVM监控远程java应用程序进程(jstatd)

          本文链接:https://www.haomeiwen.com/subject/elhryktx.html