JVisualVM连接远程Linux服务器
前言
使用JVisualVM远程监控服务器Tomcat运行情况
修改tomcat配置
第一步:修改catalina.sh
很多文章上都是添加CATALINA_OPTS变量,我试了之后发现停止报命令缺少。
正确的方式是在第一行上添加JAVA_OPTS变量,内容如下:
1 | JAVA_OPTS="-Dcom.sun.management.jmxremote -Djava.rmi.server.hostname=192.168.0.15 -Dcom.sun.management.jmxremote.rmi.port=8999 -Dcom.sun.management.jmxremote.port=8999 -Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.authenticate=true -Dcom.sun.management.jmxremote.password.file=../conf/jmxremote.password -Dcom.sun.management.jmxremote.access.file=../conf/jmxremote.access" |
假如你要给tomcat提升内存,可以在最前面加上,比如:
1 | JAVA_OPTS="-server -Xms256m -Xmx1024m -XX:PermSize=64M -XX:MaxPermSize=1025m -Dcom.sun.management.jmxremote -Djava.rmi.server.hostname=192.168.0.15 -Dcom.sun.management.jmxremote.rmi.port=8999 -Dcom.sun.management.jmxremote.port=8999 -Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.authenticate=true -Dcom.sun.management.jmxremote.password.file=../conf/jmxremote.password -Dcom.sun.management.jmxremote.access.file=../conf/jmxremote.access" |
下面进行参数的详解:
-Djava.rmi.server.hostname=192.168.0.15 代表绑定本机的IP地址,如果想外网访问,请绑定外网IP
-Dcom.sun.management.jmxremote.port=8999 指的是JVisualVM要连接的端口,服务端需要保证这个端口没有被占用
-Dcom.sun.management.jmxremote.ssl=false 是否开启SSL
-Dcom.sun.management.jmxremote.authenticate=true 是否开启权限验证,如果开启需要有用户名和密码
-Dcom.sun.management.jmxremote.password.file=../conf/jmxremote.password 指定用户名和密码的文件
-Dcom.sun.management.jmxremote.access.file=../conf/jmxremote.access 指定用户的权限的文件
-Dcom.sun.management.jmxremote.rmi.port=8999 很重要,代表rmi启动的端口,如果不写rmi会随机启动一个端口
第二步 : 将文件复制到给定的目录下
首先将jdk下面的jre/lib/management/目录下的 jmxremote.access和jmxremote.password.template 复制到tomcat目录下的conf下
将jmxremote.password.template 文件名改成 jmxremote.password
编辑jmxremote.access,内容为:
1
2
3
4monitorRole readonly
controlRole readwrite \
create javax.management.monitor.*,javax.management.timer.* \
unregister可以看出有两个用户
monitorRole readonly 代表只读,用这个用户连接看不到线程
controlRole 代表可读可写,可以看到线程,可以进行抽样
编辑jmxremote.password,内容如下:
1 | monitorRole QED: |
可以看出由用户名密码组成,我们修改下密码:
1 | monitorRole aaaa |
- 修改 jmxremote.password文件的权限,将文件权限改成600或者400(必须为此权限)
- 重启tomcat,至此服务端配置已经完成
客户端连接服务端
打开jvisualvm.exe
选择远程,右键添加远程主机
右键选中刚才添加的主机,选择添加JMX连接,输入刚才配置的端口以及用户名密码
右键选择刚才添加的JMX,打开
分析