You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用Zabbix结合JMX监控WildFly的数据源连接?

Zabbix通过JMX监控WildFly数据库连接的实操步骤

1. 定位WildFly数据源的JMX MBean

WildFly的数据库连接池数据都封装在特定MBean中,你可以用JConsole或VisualVM连接到WildFly的JMX端口,找到路径类似jboss.as:subsystem=datasources,data-source=你的数据源名称的MBean,重点关注以下核心属性:

  • ActiveCount: 当前活跃的数据库连接数
  • AvailableCount: 空闲可用的连接数
  • MaxCount: 连接池允许的最大连接数
  • CreatedCount: 累计创建的连接总数
  • DestroyedCount: 累计销毁的连接总数

2. 配置Zabbix监控项

进入Zabbix对应主机的监控项页面,新建监控项,参数设置如下:

  • 类型选择JMX agent
  • 键值自定义,例如jboss.ds.active[你的数据源名称]
  • JMX对象填写找到的MBean路径:jboss.as:subsystem=datasources,data-source=你的数据源名称
  • JMX属性填写要监控的目标属性,比如ActiveCount
  • 数据类型选Numeric (unsigned),更新间隔根据业务需求设置(推荐30秒)

按相同逻辑,为AvailableCount、MaxCount等其他关键属性创建独立监控项。

3. 设置告警触发器(可选)

为了在连接池异常时及时告警,可以配置触发器,比如:

  • 当ActiveCount等于MaxCount且持续5分钟,触发"连接池耗尽"告警
  • 当AvailableCount为0且持续3分钟,触发"无可用连接"告警

触发器表达式示例:

{你的主机名:jboss.ds.active[你的数据源名称].last()}=={你的主机名:jboss.ds.max[你的数据源名称].last()} and {你的主机名:jboss.ds.active[你的数据源名称].count(#5,1800)}=5

4. 验证配置有效性

  • 使用Zabbix的"测试"功能,确认监控项能正常拉取数据
  • 模拟数据库连接压力(比如用JMeter发起批量请求),观察监控数据是否同步变化
  • 手动触发告警条件,验证触发器是否正常触发告警

关键注意事项

  • 确保WildFly的JMX端口未被防火墙拦截,Zabbix服务器能正常访问(WildFly默认JMX端口通常为9990或9999,依版本而定)
  • 数据源名称必须与WildFly配置文件(standalone.xml/domain.xml)中<data-source name="XXX">的XXX完全一致
  • 若WildFly采用域模式,MBean路径需增加服务器标识,格式为jboss.as:server=你的服务器名,subsystem=datasources,data-source=你的数据源名称

内容的提问来源于stack exchange,提问作者user9187036

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.03 11:35:28