在 CentOS 上监控 JMeter 的可选方案
- 推荐两种落地方式:
- JMeter + InfluxDB + Grafana:将 JMeter 的测试结果实时写入 InfluxDB,再由 Grafana 可视化,适合团队协作与长期留存。
- JMeter PerfMon 插件 + ServerAgent:在 JMeter 中直接查看被测服务器的 CPU、内存、磁盘 I/O、网络 I/O,轻量、快速、无需额外时序库。
方案一 JMeter + InfluxDB + Grafana 实时监控
- 组件与端口
- InfluxDB:用于存储指标,开放 8086(HTTP API)与可选的 2003(Graphite 兼容写入,部分教程使用)。
- Grafana:可视化展示,开放 3000(Web 界面)。
- JMeter:通过“Backend Listener”写入 InfluxDB。
- 部署步骤(示例)
- 安装并启动 InfluxDB
- 安装(示例):yum 安装或拉取镜像;编辑 /etc/influxdb/influxdb.conf,开启 [http] enabled=true, bind-address=“:8086”;如需 Graphite 写入,开启 [[graphite]] enabled=true, bind-address=“:2003”, database=“jmeter”。
- 启动:systemctl start influxdb && systemctl enable influxdb。
- 建库:influx -port 8086 → create database jmeter。
- 安装并启动 Grafana
- 安装后启动:systemctl start grafana-server && systemctl enable grafana-server。
- 浏览器访问 http://:3000,默认账号 admin/admin。
- 配置 Grafana 数据源
- URL:http://<InfluxDB_IP>:8086;Database:jmeter;保存并测试。
- JMeter 配置 Backend Listener
- 添加“Backend Listener”,选择 InfluxdbBackendListenerClient;设置 InfluxDB URL=http://<InfluxDB_IP>:8086、testTitle=xxx、数据库 jmeter。
- 运行与可视化
- 启动 JMeter 测试,Grafana 导入 JMeter 仪表板模板(如 ID=5496),即可实时查看 响应时间、吞吐量、错误率 等。
- 备注
- 若使用 Docker:docker run -d --name influxdb -p 8086:8086 influxdb:1.7.10;Grafana 按系统服务方式安装与启动。
方案二 JMeter PerfMon 插件 + ServerAgent 监控被测服务器资源
- 适用场景:快速查看被测系统(应用/数据库/中间件所在 CentOS 服务器)的 CPU、内存、磁盘 I/O、网络 I/O。
- 部署步骤
- 安装 JMeter 插件
- 将 plugins-manager.jar 放入 JMETER_HOME/lib/ext 并重启 JMeter;通过 Plugins Manager 安装 PerMon (Servers Performance Monitoring)。
- 在被测服务器部署 ServerAgent
- 将 ServerAgent-2.2.3 上传至被测 CentOS,执行:chmod +x startAgent.sh && ./startAgent.sh;默认监听 TCP/UDP 4444。
- JMeter 中添加监听器并配置
- 添加“jp@gc - PerfMon Metrics Collector”,Add Row 填写被测服务器 IP 与 端口 4444,选择指标(CPU、Memory、Disks I/O、Network I/O 等,可多行添加)。
- 运行与观察
- 启动 JMeter 测试,监听器实时绘制资源曲线;若采集不到,优先检查服务器 防火墙/安全组 是否放行 4444。
- 提示
- 也可使用 Telegraf 采集系统指标写入 InfluxDB,再在 Grafana 展示,便于与 JMeter 指标统一观测。
防火墙与网络要点
- 放行端口(示例)
- InfluxDB:8086(Grafana/ JMeter 写库)、可选 2003(Graphite 写入)。
- Grafana:3000(Web 访问)。
- ServerAgent:4444(JMeter 采集被测机资源)。
- 操作示例(firewalld)
- firewall-cmd --add-port=8086/tcp --permanent && firewall-cmd --reload
- firewall-cmd --add-port=3000/tcp --permanent && firewall-cmd --reload
- firewall-cmd --add-port=4444/tcp --permanent && firewall-cmd --reload
- 云服务器还需在 安全组 中放行对应端口。
常见问题与排查
- 采集不到 ServerAgent 数据
- 确认被测机已启动 ServerAgent 且端口 4444 可达;检查 iptables/firewalld/云安全组;必要时临时关闭防火墙验证。
- InfluxDB 写入失败
- 核对 InfluxDB 地址、端口 8086、数据库名 jmeter;在 InfluxDB 中确认库是否存在(create database jmeter);如使用认证,检查用户名/密码。
- Grafana 无法显示数据
- 数据源测试通过后再导入仪表板;确认 JMeter 的 Backend Listener 已启用且测试正在运行;检查 InfluxDB 保留策略 与写入一致性设置。