如何配置Tomcat JMX监控:无密码与授权方式

2 下载量 23 浏览量 更新于2024-08-30 收藏 739KB PDF 举报
"通过Tomcat开启JMX监控的方法图解" 本文主要介绍了如何在Tomcat服务器上启用Java Management Extensions (JMX) 监控,以实现对Tomcat应用服务器的性能和状态进行实时监控。JMX 是一个标准的Java平台管理框架,它允许开发者管理和监控Java应用程序。 首先,我们假设已经搭建了一个模拟环境,该环境包括CentOS 7操作系统,1GB内存,以及JDK 1.8.0_131和Tomcat 8.0.48的安装。 开启JMX监控的步骤如下: 1. 进入Tomcat的bin目录: `# cd /opt/tomcat/apache-tomcat-8.0.48/bin/` 2. 编辑Tomcat的启动脚本`catalina.sh`: `# vim catalina.sh` 3. 在`catalina.sh`文件中添加以下JMX配置参数: - 如果不需要账号密码验证,配置如下: ``` CATALINA_OPTS="$CATALINA_OPTS -Dcom.sun.management.jmxremote -Djava.rmi.server.hostname=192.168.100.117 -Dcom.sun.management.jmxremote.port=9999 -Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.authenticate=false" ``` 参数解析: - `-Dcom.sun.management.jmxremote`:开启JMX远程访问。 - `-Djava.rmi.server.hostname`:指定服务器的IP地址,用于远程连接。 - `-Dcom.sun.management.jmxremote.port`:设置JMX监听的端口号,例如9999。 - `-Dcom.sun.management.jmxremote.ssl=false`:禁用SSL连接。 - `-Dcom.sun.management.jmxremote.authenticate=false`:不启用身份验证,这意味着任何人都可以访问JMX服务,这在生产环境中通常是不安全的。 4. 如果需要账号密码验证,需要增加以下配置: ``` CATALINA_OPTS="$CATALINA_OPTS -Dcom.sun.management.jmxremote -Djava.rmi.server.hostname=192.168.100.117 -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" ``` 这里添加了两个新的属性,分别指定密码文件`jmxremote.password`和访问控制文件`jmxremote.access`,这两个文件需要在Tomcat的`conf`目录下创建并设置相应的访问权限。 5. 创建并配置`jmxremote.password`和`jmxremote.access`文件,定义用户和权限,确保只有授权用户可以访问JMX服务。 完成以上步骤后,重新启动Tomcat服务器,JMX监控就会按照配置的参数开始工作。然后,可以通过JMX客户端工具(如JConsole或VisualVM)连接到指定的IP地址和端口,对Tomcat进行远程监控,查看和管理服务器的各种指标,包括内存使用情况、线程状态、MBean等。 请注意,在生产环境中,确保开启JMX监控时使用安全的配置,比如启用SSL连接和身份验证,以防止未授权的访问。同时,定期检查和更新JMX访问控制策略,以保持系统的安全性。
2016-12-15 上传
catalina-jmx-remote.jar放到tomcat/lib目录下 如果是windows版本,编辑TOMCAT_HOME/bin/catalina.bat,在开头加入下面几行: set CATALINA_OPTS=%CATALINA_OPTS% -Djava.rmi.server.hostname=JMX_HOST set CATALINA_OPTS=%CATALINA_OPTS% -Djavax.management.builder.initial= set CATALINA_OPTS=%CATALINA_OPTS% -Dcom.sun.management.jmxremote=true set CATALINA_OPTS=%CATALINA_OPTS% -Dcom.sun.management.jmxremote.port=JMX_PORT set CATALINA_OPTS=%CATALINA_OPTS% -Dcom.sun.management.jmxremote.ssl=false set CATALINA_OPTS=%CATALINA_OPTS% -Dcom.sun.management.jmxremote.authenticate=false 如果是linux 如果是linux版本,编辑TOMCAT_HOME/bin/catalina.sh,在开头加入下面几行: CATALINA_OPTS="$CATALINA_OPTS -Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.port=11111 -Dcom.sun.management.jmxremote.authenticate=false -Dcom.sun.management.jmxremote.ssl=false -Djava.rmi.server.hostname=192.168.7.150" 检测 java -jar cmdline-jmxclient-0.10.3.jar - 192.168.16.64:11111 java.lang:type=Memory NonHeapMemoryUsage 05/24/2014 15:42:02 +0800 org.archive.jmx.Client NonHeapMemoryUsage: committed: 47316992 init: 24313856 max: 136314880 used: 47012784 //运行时间 java -jar cmdline-jmxclient-0.10.3.jar - 192.168.16.64:11111 Catalina:type=Runtime Uptime //虚拟机 //进程 CPU 时间 java -jar cmdline-jmxclient-0.10.3.jar - 192.168.16.64:11111 java.lang:type=OperatingSystem ProcessCpuTime //进程 CPU 占用率 java -jar cmdline-jmxclient-0.10.3.jar - 192.168.16.64:11111 java.lang:type=OperatingSystem ProcessCpuLoad