如何在Tomcat中启用JMX以进行监控和管理
JMX(Java管理扩展)是一种非常强大的技术,可以让您管理、监视和配置Tomcat MBean。
如果您是Tomcat管理员,那么您应该熟悉如何在tomcat中启用JMX来监视堆内存、线程、CPU使用率、类和配置各种MBean。
在本文中,我将讨论如何启用并连接到JConsole的Tomcat。
我假设您已经安装了Tomcat,如果没有的话,您可以参考installation guide。
- 转到您安装Tomcat的路径
- 转到bin文件夹
- 创建一个名为“setenv.sh”的文件
- 使用vi编辑器修改文件并添加以下内容
CATALINA_OPTS="-Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.port=9000 -Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.authenticate=false"
- 使用“:w”保存文件
- 将文件权限更改为可执行
chmod 755 setenv.sh
在启动Tomcat之前,验证JMX,请查看上述配置。
- Dcom.sun.management.jmxremote.port=9000 – 如果需要,您可以修改端口号。
- Dcom.sun.management.jmxremote.ssl=false – 这意味着连接时不使用SSL
- Dcom.sun.management.jmxremote.authenticate=false – 这意味着使用JMX客户端连接到Tomcat实例时不需要进行身份验证。
使用startup.sh脚本文件启动tomcat。启动后,您可以使用netstat或ps –ef grep命令进行验证。
使用netstat进行验证
netstat –anlp | grep 9000
[root@localhost ~]# netstat -anlp |grep 9000 tcp6 0 0 :::9000 :::* LISTEN 9372/java [root@localhost ~]#
使用ps命令进行验证
ps –ef |grep jmx
[root@localhost ~]# ps -ef|grep jmx
root 9372 1 0 21:30 pts/0 00:00:04 java -Djava.util.logging.config.file=/home/chandan/Downloads/apache-tomcat-8.0.28/conf/logging.properties -Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager -Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.port=9000 -Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.authenticate=false -Djava.endorsed.dirs=/home/chandan/Downloads/apache-tomcat-8.0.28/endorsed -classpath /home/chandan/Downloads/apache-tomcat-8.0.28/bin/bootstrap.jar:/home/chandan/Downloads/apache-tomcat-8.0.28/bin/tomcat-juli.jar -Dcatalina.base=/home/chandan/Downloads/apache-tomcat-8.0.28 -Dcatalina.home=/home/chandan/Downloads/apache-tomcat-8.0.28 -Djava.io.tmpdir=/home/chandan/Downloads/apache-tomcat-8.0.28/temp org.apache.catalina.startup.Bootstrap start root 9816 9781 0 21:46 pts/0 00:00:00 grep --color=auto jmx [root@localhost ~]#
这证明了在Tomcat中启用了jmx,并且现在是使用JMX客户端进行连接的时候了。
您可以使用任何客户端,不过为了向您展示,我将使用随Java一起提供的jconsole。
使用Jconsole连接Tomcat JMX
- 转到您拥有jconsole的路径
提示:如果您不确定,您可以使用find command进行搜索。
- 执行jconsole
./jconsole
这将弹出Java监视和管理控制台。
- 选择“远程进程”
- 输入服务器主机和端口详细信息
- 点击“连接”
这将连接到Tomcat并显示CPU、内存和线程使用的很好的图表。这在故障排除过程中非常方便。
您还可以从控制台执行GC。
- 点击内存选项卡,您将看到“执行GC”按钮
正如文章开头提到的,您还可以为类配置MBeans。
这通常在运行时需要更改日志记录或特定参数时使用。
所以请尽情使用Jconsole和JMX。这是一个用于故障排除和监控的绝妙工具。
如果你对了解更多关于Tomcat的知识感兴趣,那就请点击check out this tutorial。