如何在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,请查看上述配置。

  1. Dcom.sun.management.jmxremote.port=9000 – 如果需要,您可以修改端口号。
  2. Dcom.sun.management.jmxremote.ssl=false – 这意味着连接时不使用SSL
  3. 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

类似文章