配置远程 VisualVM
要进行远程监控,本机的 VisualVM 就必须和远程的 JVM 要进行通信, Visualvm 目前支持两种 remote connection 方式。分别是 jstatd 和 JMX 方式:这里主要介绍的 JMX 方式。
修改 Tomcat 配置
- 进入 TOMCAT_HOME\bin 目录
- 打开 catalina.sh 文件,加入如下信息:

CATALINA_OPTS="$CATALINA_OPTS-Dcom.sun.management.jmxremote=true-Dcom.sun.management.jmxremote.port=8099(配置远程 connection 的端口号的)-Dcom.sun.management.jmxremote.ssl=false(指定了 JMX 是否启用 ssl)-Dcom.sun.management.jmxremote.authenticate=false( 指定了JMX 是否启用鉴权(需要用户名,密码鉴权))-Djava.rmi.server.hostname=192.168.0.1(配置 server 的 IP)"
修改远程机器JDK配置文件
- 进入 JAVA_HOME\jre\lib\management\ 目录
- 拷贝 jmxremote.password.template 这个文件到当前目录, 并改名为 jmxremote.password
- 打开 jmxremote.password 文件,去掉 # monitorRole QED 和 # controlRole R&D 这两行前面的注释符号
以下方式需要配置用户名、密码:
CATALINA_OPTS="$CATALINA_OPTS-Dcom.sun.management.jmxremote-Djava.rmi.server.hostname=192.168.23.1-Dcom.sun.management.jmxremote.port=9999-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"# authenticate = true开启鉴权功能# access.file: 权限文件路径(JAVA_HOME/jre/lib/management/)# password.file: 密码文件路径
将 JAVA_HOME/jre/lib/management 下面的 jmxremote.access 和 jmxremote.password.template 拷贝到 Tomcat的 conf 目录下,并对两个文件做以下修改:
jmxremote.password.template 文件名修改为 jmxremote.password
修改两个文件的权限:
chmod 600 jmxremote.accesschmod 600 jmxremote.password
修改 jmxremote.access 文件,将文件最后两行显示【monitorRole和controlRole】的注释取消,其中 monitorRole 为只拥有只读权限的角色,controlRole 有更高权限:读写等。编辑完成后,保存。
修改 jmxremote.password 文件。同样将文件最后两行显示【monitorRole和controlRole】的注释取消,两个用户名后面的字符即密码,然后保存。
- 重启 Tomcat
