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

2020-09-17  本文已影响0人  有梦想的虫子_2018

一、环境

本地 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
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
-J-Djava.security.policy=jstatdAllPolicy 安全策略文件
-p 1099  指定启动端口
-J-Djava.rmi.server.hostname=181.90.24.191  指定公网IP地址
[root@VM_0_12_centos bin]# jps
24723 Jstatd   启动成功
30365 jar
25567 Jps
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服务启动时的一个随机端口

[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

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

[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进行监控

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.

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

上一篇下一篇

猜你喜欢

热点阅读