配置Tomcat连接池监控环境变量教程

云静吖_9809

云静吖_9809

2026-09-09

428人浏览

原创

tomcat连接池监控需通过jvm参数启用jmx,必须在setenv.sh/bat中追加catalina_opts(而非shell export),否则参数不生效;关键包括-dcom.sun.management.jmxremote、指定rmi端口与真实hostname,且datasource需使用tomcat jdbc pool工厂。

配置tomcat连接池监控环境变量教程

Tomcat连接池监控不依赖环境变量,硬配 JAVA_OPTSCATALINA_OPTS 才是生效前提。 直接在系统级或用户级 shell 中 export 环境变量(如 export JAVA_OPTS=...)对 Tomcat 启动无效——它只影响当前 shell 进程,而 Tomcat 通常以独立进程(如 systemd、init.d 或直接调用 startup.sh)启动,不会继承这些变量。

为什么 JAVA_OPTSCTALINA_OPTS 必须在启动脚本里写死

Tomcat 的 startup.sh(Linux/macOS)或 startup.bat(Windows)会显式读取 CTALINA_OPTSJAVA_OPTS,并拼接到最终的 java 命令行中。JMX 监控、连接池 MBean 暴露等能力,全靠 JVM 参数触发:

  • -Dcom.sun.management.jmxremote 是开启 JMX 的基础开关
  • -Dcom.sun.management.jmxremote.port=10099 指定 JMX RMI 注册端口(注意:不是监听端口)
  • -Dcom.sun.management.jmxremote.rmi.port=10098 强制绑定 RMI 服务端口,避免随机端口导致防火墙/网络策略失败
  • -Djava.rmi.server.hostname=192.168.1.100 必须设为可被监控端(如 Zabbix、JConsole)访问的真实 IP,不能用 localhost127.0.0.1
  • -Dcom.sun.management.jmxremote.authenticate=false-Dcom.sun.management.jmxremote.ssl=false 仅限内网调试;生产环境必须启用认证和 SSL

这些参数若没进 JVM 启动命令,ConnectionPoolMBean 就不会注册,任何工具都查不到 getNumActive()getWaitCount() 等指标。

怎么安全地追加到 CTALINA_OPTS

不要覆盖原有值,用追加方式写入 $CATALINA_HOME/bin/setenv.sh(Linux/macOS)或 setenv.bat(Windows),该文件会被 Tomcat 自动 source:

QuiverAI
QuiverAI

QuiverAI是一款AI图像与设计工具,AI矢量图形生成工具,输出可编辑的 SVG 代码。

下载
export CATALINA_OPTS="$CATALINA_OPTS -Dcom.sun.management.jmxremote \
  -Dcom.sun.management.jmxremote.port=10099 \
  -Dcom.sun.management.jmxremote.rmi.port=10098 \
  -Djava.rmi.server.hostname=192.168.1.100 \
  -Dcom.sun.management.jmxremote.authenticate=true \
  -Dcom.sun.management.jmxremote.ssl=true"

关键点:

  • 文件必须放在 bin/ 目录下,且名称严格为 setenv.sh(无执行权限问题,Tomcat 会 source 它)
  • Windows 下用 setenv.bat,语法为 set CATALINA_OPTS=%CATALINA_OPTS% -D...
  • 改完后必须重启 Tomcat,ps aux | grep java 可验证参数是否出现在进程命令行中
  • 如果用 systemd 管理 Tomcat,也可能需要在 service 文件的 Environment=ExecStart= 中显式注入,此时 setenv.sh 会被跳过

常见错误现象与排查路径

监控工具连不上、指标为空、报 Connection refusedMalformedObjectNameException,大概率是以下任一环节断了:

  • JVM 参数未生效 → 检查 ps aux | grep java | grep 10099 是否含 JMX 参数
  • RMI hostname 解析失败 → 在监控端执行 telnet 192.168.1.100 10098,不通则说明 RMI 端口未暴露或被拦截
  • JMX ObjectName 不匹配 → Tomcat 连接池的 MBean 名为 Tomcat:type=DataSource,context=*,host=*,class=javax.sql.DataSource,name="jdbc/MyDB",注意引号和斜杠转义;Probe 或 Zabbix 的 item key 写错就查不到
  • 连接池未启用 JMX → 确保 server.xml<resource></resource> 配置了 factory="org.apache.tomcat.jdbc.pool.DataSourceFactory"(默认值),否则用的是老版 DBCP,不支持 ConnectionPoolMBean

最易被忽略的是:JMX RMI 的双端口机制(注册端口 + 服务端口)和 hostname 绑定,这两处配置错一个,整个监控链路就静默失效,且日志里往往没有明确报错。

相关文章

PHP速学视频免费教程(入门到精通)
PHP速学视频免费教程(入门到精通)

PHP怎么学习?PHP怎么入门?PHP在哪学?PHP怎么学才快?不用担心,这里为大家提供了PHP速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!

下载

本站声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

相关专题

更多
如何配置Tomcat环境变量
如何配置Tomcat环境变量

配置Tomcat环境变量需要在系统中添加CATALINA_HOME变量,并将Tomcat的安装路径添加到PATH变量中。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

2023.10.26

605

5

idea如何集成Tomcat
idea如何集成Tomcat

idea集成Tomcat的步骤:1、添加Tomcat服务器配置;2、配置项目部署;3、运行Tomcat服务器;4、访问项目;5、注意事项;6、关闭Tomcat服务器。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

2024.02.23

264

5

怎么查看Tomcat源代码
怎么查看Tomcat源代码

查看Tomcat源代码的步骤:1、下载Tomcat源代码;2、在IDEA中导入Tomcat源代码;3、查看源代码;4、理解Tomcat的工作原理;5、参与社区和贡献;6、注意事项;7、持续学习和更新;8、使用工具和插件。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

2024.02.23

449

5

常见的tomcat漏洞有哪些
常见的tomcat漏洞有哪些

常见的tomcat漏洞有:1、跨站脚本攻击;2、跨站请求伪造;3、目录遍历漏洞;4、缓冲区溢出漏洞;5、配置漏洞;6、第三方组件漏洞。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

2024.02.23

265

5

tomcat日志乱码怎么解决
tomcat日志乱码怎么解决

tomcat日志乱码的解决办法:1、修改tomcat的日志编码设置;2、检查ide的编码设置;3、检查操作系统的编码设置;4、使用过滤器处理日志;5、检查外部系统的编码设置;6、检查文件编码方式等等。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

2024.02.23

328

5

weblogic和tomcat有哪些区别
weblogic和tomcat有哪些区别

weblogic和tomcat的区别:1、功能;2、性能;3、规模;4、价格;5、安全性;6、配置和管理;7、社区支持;8、集成能力;9、升级和更新;10、可靠性。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

2024.02.23

329

5

tomcat和nginx有哪些区别
tomcat和nginx有哪些区别

tomcat和nginx的区别:1、应用领域;2、性能;3、功能;4、配置;5、安全性;6、扩展性;7、部署复杂性;8、社区支持;9、成本;10、日志管理。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

2024.02.23

541

5

tomcat启动闪退怎么解决
tomcat启动闪退怎么解决

tomcat启动闪退的解决办法:1、检查java环境;2、检查环境变量配置;3、检查端口被占用;4、检查配置文件编码;5、检查启动时需要的配置文件;6、检查相关文件是否丢失;7、检查防火墙和杀毒软件设置。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

2024.02.23

302

5

有哪些常见的tomcat漏洞
有哪些常见的tomcat漏洞

常见的tomcat漏洞有:1、跨站脚本攻击;2、跨站请求伪造;3、目录遍历漏洞;4、缓冲区溢出漏洞;5、配置漏洞;6、第三方组件漏洞。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

2024.02.23

2013

5

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
Tomcat核心原理解析
Tomcat核心原理解析

共57课时 | 8.6万人学习

Apache Maven 官方安装指南
Apache Maven 官方安装指南

共0课时 | 0人学习

PHP基础-环境/变量/函数等
PHP基础-环境/变量/函数等

共57课时 | 18万人学习