温馨提示×

ubuntu jmeter如何监控

小樊
39
2025-12-10 17:43:03
栏目: 智能运维

Ubuntu 下 JMeter 监控方案总览

  • 面向压测执行机与被压测服务器的实时监控,常用做法有两类:
    1. 使用 JMeter Backend Listener → InfluxDB → Grafana 构建可视化实时看板;
    2. 使用 PerfMon Metrics Collector + ServerAgent 采集被测服务器的 CPU、内存、磁盘 IO、网络 等资源指标。前者适合看并发、响应时间、错误率等业务指标,后者适合看系统资源瓶颈。

方案一 InfluxDB + Grafana 实时监控

  • 组件与端口
    • JMeter:压测引擎,通过 Backend Listener 写入时序数据
    • InfluxDB:时序数据库,默认 HTTP 8086
    • Grafana:可视化看板,默认 3000
  • 部署步骤
    1. 安装 InfluxDB(Ubuntu 推荐 APT 安装或下载 .deb 包安装),启用 HTTP 写入:
      • 配置 /etc/influxdb/influxdb.conf 的 [http] enabled = true,bind-address = “:8086”
      • 启动服务:sudo systemctl start influxdb
      • 创建库:influx → CREATE DATABASE jmeter
    2. 安装 Grafana(APT 或 .deb 包),启动服务:sudo systemctl start grafana-server
    3. Grafana 添加数据源:选择 InfluxDB,URL 填 http://<influxdb_ip>:8086,Database 填 jmeter
    4. JMeter 配置 Backend Listener
      • 添加监听器:Test Plan → Add → Listener → Backend Listener
      • 实现选择:org.apache.jmeter.visualizers.backend.influxdb.InfluxdbBackendListenerClient
      • 关键参数:InfluxDB URL http://<influxdb_ip>:8086,Database jmeter,Application 自定义(用于多场景区分)
    5. 运行压测,Grafana 导入 JMeter 官方 Dashboard(如 ID:4026 或搜索 “jmeter”),即可实时查看响应时间、吞吐、错误率等
  • 说明
    • 若使用 InfluxDB 2.x,需改用对应的写入 API/组织与令牌,并选择 InfluxDB 2 数据源插件。

方案二 PerfMon 监控被测服务器资源

  • 适用场景:需要观察 CPU、内存、磁盘 IO、网络 等系统资源瓶颈
  • 部署步骤
    1. JMeter 安装插件管理器(jmeter-plugins-manager),在 Available Plugins 中安装 PerfMon(重启 JMeter)
    2. JMeter 添加监听器:jp@gc - PerfMon Metrics Collector
      • 新增行,填写被测服务器 Host/IP、端口 4444(默认)、Metric(如 cpu、mem、disk、net
    3. 在被测服务器部署 ServerAgent-2.2.3(Linux 解压后执行:./startAgent.sh)
      • 确保 JMeter 机器可访问被测服务器的 4444/TCP
    4. 运行压测,PerfMon 面板实时绘制资源曲线
  • 提示
    • 如需监控 磁盘 IO/网络,在 ServerAgent 所在服务器具备相应权限与工具(如 iostat/sar),并开放防火墙 4444 端口。

网络与防火墙要点

  • 常见端口与方向
    • InfluxDB 8086/TCP:JMeter → InfluxDB(写入)
    • Grafana 3000/TCP:浏览器/用户 → Grafana(访问)
    • ServerAgent 4444/TCP:JMeter → 被测服务器(采集)
  • Ubuntu 防火墙(UFW)示例
    • sudo ufw allow 3000,8086,4444/tcp
    • 云服务器还需在 安全组 放行对应端口。

快速排错清单

  • InfluxDB 写入失败
    • 在 JMeter 机器 curl 测试:curl -i -XPOST ‘http://<influxdb_ip>:8086/write?db=jmeter’ --data-binary ‘jmeter,application=test count=1’
    • 若返回 204 表示连通;若超时/拒绝,检查 InfluxDB 服务、监听地址与防火墙
  • Grafana 无数据
    • 确认 InfluxDB 中已存在 jmeter 库且有数据:influx → USE jmeter → SHOW MEASUREMENTS
    • 检查 Backend Listener 的 DB、URL、Application 是否与 Grafana 数据源一致
  • PerfMon 无数据
    • 在被测服务器确认:ServerAgent 进程存活(ps -ef | grep ServerAgent)、端口 4444 监听(ss -lntp | grep 4444)
    • JMeter 中 Host/IP 与端口填写无误,且网络可达。

0