Home  >  Article  >  Java  >  How to monitor remote SpringBoot project with Jvisualvm

How to monitor remote SpringBoot project with Jvisualvm

PHPz
PHPzforward
2023-05-27 10:02:241951browse

Note: There are two ways for VisualVM to connect to the remote server: JMX and jstatd. Neither method can perfectly support all functions.

For example, JMX does not support VisualGC,

jstatd does not support CPU monitoring,

can be configured at the same time and selected as needed for actual use.

jvisualvm program adds a remote connection, please turn off the local firewall.

JMX

1. Modify SpringBoot startup parameters

The normal springboot startup command is

nohup java -jar demo.jar &

After using monitoring:

nohup java -Djava.rmi.server.hostname=192.168.81.149 \
-Dcom.sun.management.jmxremote \
-Dcom.sun.management.jmxremote.port=1099 \
-Dcom.sun.management.jmxremote.authenticate=false \
-Dcom.sun.management.jmxremote.ssl=false \
-jar jvm-1.0-SNAPSHOT.jar &
java -Djava.rmi.server.hostname=192.168.81.149 \
-Dcom.sun.management.jmxremote \
-Dcom.sun.management.jmxremote.port=1099 \
-Dcom.sun.management.jmxremote.authenticate=false \
-Dcom.sun.management.jmxremote.ssl=false \
-jar jvm-1.0-SNAPSHOT.jar

jvm -1.0-SNAPSHOT.jar is the jar package of the project

192.168.81.149 is the machine ip where the project is deployed

1099 is the remote port number that jvisualvm needs to connect to

authenticate=false Not enabled, user authentication

2. Use local jvisualvm to monitor remote

How to monitor remote SpringBoot project with Jvisualvm

How to monitor remote SpringBoot project with Jvisualvm

How to monitor remote SpringBoot project with Jvisualvm

How to monitor remote SpringBoot project with Jvisualvm

How to monitor remote SpringBoot project with Jvisualvm

##There may be nothing after opening it, it’s empty. This is because the project needs someone to access it, you can do whatever you want

How to monitor remote SpringBoot project with Jvisualvm

jstatd

1. Add configuration

This method requires you to manually install the JDK, or you know where the jdk is

In the jdk directory Create the bin under

vi jstatd.all.policy

I specified the absolute path here to facilitate the elimination of path effects

grant codebase "file:${java.home}/../lib/tools.jar" {    
    permission java.security.AllPermission;    
};

Start the jstatd background application port (default is 1099) Use the parameter -p to specify other ports

jstatd -J-Djava.security.policy=jstatd.all.policy \
-J-Djava.rmi.server.hostname=192.168.81.149 \
-J-Djava.rmi.server.logCalls=true  -p 1098

(I ran the following command in the /usr/local/jdk1.8.0_161/bin path. There is a jstatd.all.policy file in this path. If you execute it elsewhere, remember Specify absolute or relative path)

Among them,

-J-Djava.security.policy=jstatd.all.policy 指定路径
-J-Djava.rmi.server.logCalls=true  打印日志
-J-Djava.rmi.server.hostname=192.168.81.149  指定主机名,主机名应该和你用hostname -i命令执行出来的结果一致。

Start the project

java  -jar jvm-1.0-SNAPSHOT.jar

2. Use local jvisualvm to monitor remote

How to monitor remote SpringBoot project with Jvisualvm

How to monitor remote SpringBoot project with Jvisualvm

How to monitor remote SpringBoot project with Jvisualvm

This 1,098 is actually the automatic conversion of 1098 when we input it

How to monitor remote SpringBoot project with Jvisualvm

The above is the detailed content of How to monitor remote SpringBoot project with Jvisualvm. For more information, please follow other related articles on the PHP Chinese website!

Statement:
This article is reproduced at:yisu.com. If there is any infringement, please contact admin@php.cn delete