jvisualvm监控本地tomcat
- 找到jdk安装目录下的bin目录(如博主的:D:\Java\jdk1.8.0_131\bin),双击执行jvisualvm.exe。
- 启动tomcat,jvisualvm会自动监控到该tomcat并添加。
附:如果使用IDEA开发,也可以安装插件
安装后重启IDEA,之后可以直接在IDEA启动tomcat时启动jvisualvm
JMX监控远程tomcat
- 配置前建议先关闭tomcat。
- 找到tomcat的安装目录的bin目录下的catalina.sh文件(如博主:/root/tomcat/apache-tomcat-8.5.50/bin/catalina.sh)。在注释的最后一行下(一般最后一行注释为# OS specific support. $var must be set to either true or false.)添加以下内容:
CATALINA_OPTS="-Dcom.sun.management.jmxremote -Djava.rmi.server.hostname=服务器IP -Dcom.sun.management.jmxremote.port=8081 -Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.authenticate=false"
- 注意:把上面内容中的【服务器IP】换成自己的服务器IP,端口的话如果没有被占用可以直接使用8081。这里的端口是jmx启动的端口,不是tomcat的端口(如8080)!!!(抹一把心酸泪)
- 重启/启动tomcat
- 在jvisualvm添加远程主机;添加主机后添加JMX连接即可
- 如果是内网服务器,可以不配置用户名密码验证,减少烦琐配置,上述步骤就OK了!
- 如果是公网,建议改为配置,添加的内容改为
CATALINA_OPTS="-Dcom.sun.management.jmxremote -Djava.rmi.server.hostname=172.1.1.51 -Dcom.sun.management.jmxremote.port=8081 -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安装目录中和bin同级的conf目录下添加jmxremote.password和jmxremote.access文件
jmxremote.password内容(用户名和密码):
monitorRole 111111
controlRole 222222
jmxremote.access内容(用户名和权限)
monitorRole readonly
controlRole readwrite
同时在/root/tomcat/apache-tomcat-8.5.50/conf目录下使用以下命令修改文件权限
chmod 600 jmx*
然后,重复之前第4部加主机->加jmx连接(勾选使用安全凭证并填写用户名和密码)即可!