温馨提示×

如何在centos上监控jmeter运行状态

小樊
46
2025-11-22 04:23:19
栏目: 智能运维

在 CentOS 上监控 JMeter 运行状态

一 监控方案总览

  • 推荐采用 JMeter 后端监听器 + InfluxDB + Grafana 的实时监控方案,JMeter 将指标写入 InfluxDB,Grafana 从 InfluxDB 读取并可视化,适合观察 响应时间、吞吐量、错误率 等核心指标。
  • 若需监控被测系统或压测机的 CPU、内存、磁盘、网络 等主机资源,可在目标机器部署 ServerAgent,JMeter 通过 PerfMon 监听器采集。
  • 分布式压测时,可在 Master/Slave 上分别部署上述组件,统一由 Grafana 展示全局与分机指标。

二 快速落地 InfluxDB Grafana 实时监控

  • 安装与启动
    • 安装 InfluxDB(示例为 1.7.10,亦可用 1.x 其他版本):
      • Docker 方式:docker run -d --name influxdb -p 8086:8086 -v ${PWD}:/var/lib/influxdb influxdb:1.7.10
    • 安装 Grafana 并启动,默认端口 3000
  • InfluxDB 初始化
    • 创建数据库与用户(命令行执行 influx):
      • create database jmeter
      • create user admin with password admin
  • JMeter 配置后端监听器
    • 在测试计划中添加后端监听器:InfluxdbBackendListenerClient
    • 关键参数:InfluxDB URL 设为 http://<InfluxDB_IP>:8086,数据库填 jmeter,可设置 testTitle 便于区分测试。
  • Grafana 可视化
    • 添加数据源:Type 选 InfluxDB,URL http://<InfluxDB_IP>:8086,Database jmeter,用户名/密码 admin/admin,点击 Save & Test。
    • 导入官方仪表板模板:推荐 ID 5496(JMeter Dashboard),即可查看 响应时间、TPS、错误率 等实时图表。

三 主机与 JVM 资源监控 ServerAgent PerfMon

  • 在被测机或压测机上部署 ServerAgent(放置于如 /opt/ServerAgent),启动:
    • java -jar ./CMDRunner.jar --tool PerfMonAgent --udp-port 7777 --tcp-port 7777
  • 防火墙放行对应端口(示例为 7777;如使用默认 4444,也需放行)。
  • JMeter 侧添加监听器 PerfMon Metrics Collector,新增指标并填写目标主机 IP 与端口(如 7777),即可采集 CPU、Memory、Disk I/O、Network 等。
  • 分布式压测:在各 Slave 上同样部署并启动 ServerAgent,JMeter 即可汇聚多机资源指标。

四 命令行运行与实时查看

  • 非 GUI 方式启动压测并输出日志/报告(便于与 Grafana 实时联动):
    • jmeter -n -t your_plan.jmx -l result.jtl -e -o html_report
  • 观察要点
    • 控制台与 jtl 日志可查看实时进度与错误;
    • Grafana 仪表板会随测试进行实时刷新,便于发现 响应时间抖动、吞吐下降、错误率上升 等问题。

五 常见问题与排查

  • 端口与连通性
    • 常见端口:2003(JMeter 写 InfluxDB Graphite 接口,1.x)、8086(InfluxDB API)、3000(Grafana)、4444/7777(ServerAgent)。使用 telnet 或 nc 测试连通性,并在 firewalld/iptables 放行对应端口。
  • InfluxDB 写入失败
    • 确认数据库 jmeter 已创建、InfluxDB 服务运行正常、JMeter 后端监听器的 URL/库名 配置正确。
  • Grafana 无法显示数据
    • 检查数据源的 URL、Database、用户名/密码 是否正确,测试连接是否通过;必要时查看 InfluxDB 中是否存在相应 measurement 数据。
  • 分布式压测问题
    • 确保 Master/SlaveJDK/JMeter 版本一致,并在 jmeter.properties 中正确配置 remote_hosts;如使用 RMI,常见做法为设置 server.rmi.ssl.disable=true 并指定 RMI_HOST_DEF

0