本文主要是介绍Jvisualvm监控本地、远程Java进程,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
Jvisualvm监控本地、远程Java进程
- 监控本地Java进程
- 监控远端Java进程
- JMX
- 创建配置文件
- 开启远程监控
- 启动Tomcat
- 创建连接
监控本地Java进程
在命令行输入
jvisualvm
即可启动jvisualvm
双击某个进程即可打开
监控远端Java进程
Jvisualvm不仅是可以监控本地jvm进程,还可以监控远程的jvm进程,需要借助于JMX技术实现。
这里以
jvisualvm
监控远端Tomcat的Java进程为例
JMX
JMX(Java Management Extensions,即Java管理扩展)是一个为应用程序、设备、系统等植入管理功能的框架。JMX可以跨越一系列异构操作系统平台、系统体系结构和网络传输协议,灵活的开发无缝集成的系统、网络和服务管理应用。
创建配置文件
在
tomcat/conf
文件目录中创建两个文件jmxremote.access
和jmxremote.password
jmxremote.password
文件用于配置账号、密码
touch jmxremote.password账号 密码guest guestmanager manager
jmxremote.access
文件用于配置账号权限
touch jmxremote.access用户 权限
guest readonlymanager readwrite
授予权限
chmod 600 jmx*
开启远程监控
要想让服务器上的tomcat被连接,需要改catalina.sh
文件
注意:最好一个参数一行的配置
# ----- Execute The Requested Command -----------------------------------------
CATALINA_OPTS="$CATALINA_OPTS -Dcom.sun.management.jmxremote"
CATALINA_OPTS="$CATALINA_OPTS -Djava.rmi.server.hostname=112.74.96.150"
CATALINA_OPTS="$CATALINA_OPTS -Dcom.sun.management.jmxremote.port=8085"
CATALINA_OPTS="$CATALINA_OPTS -Dcom.sun.management.jmxremote.rmi.port=8086"
CATALINA_OPTS="$CATALINA_OPTS -Dcom.sun.management.jmxremote.ssl=false"
CATALINA_OPTS="$CATALINA_OPTS -Dcom.sun.management.jmxremote.authenticate=true"
CATALINA_OPTS="$CATALINA_OPTS -Dcom.sun.management.jmxremote.access.file=../conf/jmxremote.access"
CATALINA_OPTS="$CATALINA_OPTS -Dcom.sun.management.jmxremote.password.file=../conf/jmxremote.password"
参数说明
server.hostname:ip
jmxremote.port:开启jmx的端口,JMX远程连接端口
rmi.port: 通信端口,默认随机
jmxremote.ssl:是否开启ssl(false/true)
jmxremote.authenticate:是否开启鉴权功能,账号密码远程监控(false/true)
jmxremote.password.file:密码文件路径
jmxremote.access.file:权限文件路径
注意:
云服务器一定要注意RMI端口
的设置,否则无法远程连接 ! ! !
启动Tomcat
进入bin目录,启动tomcat
./startup.sh
查看tomcat启动日志
tail -f ../logs/catalina.out
查看tomcat端口监听
[root@administrator bin]# lsof -i tcp:8080
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
java 18876 root 63u IPv6 758429 0t0 TCP *:webcache (LISTEN)
查看8085监听情况
[root@administrator bin]# lsof -i:8085
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
java 18876 root 21u IPv6 757493 0t0 TCP *:8085 (LISTEN)
[root@administrator bin]# netstat -antup | grep 18876
tcp6 0 0 :::8080 :::* LISTEN 18876/java
tcp6 0 0 :::8085 :::* LISTEN 18876/java
tcp6 0 0 :::8086 :::* LISTEN 18876/java
tcp6 0 0 :::43805 :::* LISTEN 18876/java
tcp6 0 0 127.0.0.1:8005 :::* LISTEN 18876/java
tcp6 0 0 172.22.4.21:8086 116.169.4.136:52959 ESTABLISHED 18876/java
tcp6 0 101 172.22.4.21:8086 116.169.4.136:1957 ESTABLISHED 18876/java
创建连接
在jvisualvm中选中远程,右击添加,主机名上写服务器的ip地址,然后点击确定
右击该主机IP,添加JMX,也就是通过JMX技术具体监控远端服务器哪个Java进程
在JMX中输入如下信息
端口:8085用户名:manager密码:manager勾选不要求SSL连接
连接成功
这篇关于Jvisualvm监控本地、远程Java进程的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!