背景:Tomcat系统运行过程出现错误,需要打开JMX,添加对JVM的监控。Tomcat运行在CentOS中。
前提:监控端windows系统,安装JDK。
步骤如下:
1.服务器关闭Tomcat
cd /opt/apache-tomcat-7.0.54/bin
./shutdown.sh
2.进入Tomcat/bin目录,修改catalina.sh,找到如下内容“#—–Execute The Requested Command”,在其上添加以下配置,此配置不需要用户名、密码
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=false”
ip是你要监控的tomcat所在服务器的ip地址
端口号,是你要开启的监控端口号。
ssl,false表示不使用ssl链接
authenticate,false表示不使用监控,即不需要用户名和密码
以下方式需要配置用户名、密码
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,权限文件路径
password.file,密码文件路径
3.当没有配置密码时,无需此操作。当启用密码后,根据上述配置,将 JAVA_HOME/jre/lib/management下面的jmxremote.access和jmxremote.password.template拷贝到Tomcat的conf目录下,并对两个文件做以下修改:
jmxremote.password.template文件名修改为jmxremote.password
修改两个文件的权限
chmod 600 jmxremote.access
chmod 600 jmxremote.password
修改jmxremote.access文件,将文件最后两行显示【monitorRole和controlRole】的注释取消,其中monitorRole为只拥有只读权限的角色,controlRole有更高权限:读写等。编辑完成后,保存。
修改jmxremote.password文件。同样将文件最后两行显示【monitorRole和controlRole】的注释取消,两个用户名后面的字符即密码,然后保存。
4.服务器启动Tomcat
cd /opt/apache-tomcat-7.0.54/bin
./startup.sh
5.做完以上操作后,使用jdk自带工具jvisualvm.exe连接,工具目录如下:JAVA_HOME/bin,连接方式如下:
右击“远程”,“添加远程主机”
右击添加好的主机,“添加JMX连接”,根据配置信息,填写相应的端口、用户名、密码等信息
6.添加完成后,效果如下:
7.如有其他需求,可下载其他附件
如果需要独立的监控软件可下载:VisualVM
下载地址:http://visualvm.github.io/download.html
入门指南:https://visualvm.github.io/gettingstarted.htmlVisualVM_1.3.9