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.
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
vi jstatd.all.policyI 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.jar2. Use local jvisualvm to monitor remote This 1,098 is actually the automatic conversion of 1098 when we input it
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!