【性能测试】Jmeter+Grafana+InfluxDB+Prometheus Windows安装部署教程

一、工具作用与整体架构

1.1 各工具核心作用

工具 作用描述 关键特性
Jmeter 性能测试工具,模拟多用户并发请求,生成测试数据 支持HTTP/HTTPS、数据库等多种协议,可自定义测试场景
InfluxDB 时序数据库,专门存储时间序列数据(如Jmeter测试结果) 高写入性能,支持Flux查询语言,适合存储海量测试指标
Prometheus 时序数据库,专注于系统监控指标收集(如CPU、内存、网络) 支持数据拉取(Pull)模式,内置PromQL查询,适合监控服务器/应用指标
Grafana 数据可视化平台,将InfluxDB和Prometheus数据以仪表盘形式展示 支持多数据源整合,丰富的图表类型,可自定义告警规则

1.2 整体架构关系

四者通过以下流程协同工作:

  1. Jmeter 模拟用户请求,生成性能测试数据(如响应时间、吞吐量);
  2. InfluxDB 存储Jmeter测试结果,通过Backend Listener实时写入;
  3. Prometheus 收集Windows服务器指标(如CPU使用率、内存占用),需配合Windows Exporter;
  4. Grafana 从InfluxDB和Prometheus拉取数据,通过仪表盘可视化展示,实现性能测试与系统监控一体化。

二、安装前准备

2.1 环境要求

  • 操作系统:Windows 10/11 64位
  • Java环境 :JDK 11+(Jmeter依赖),需配置JAVA_HOME环境变量
  • 权限:管理员权限(用于安装服务、开放端口)
  • 硬件:建议4核CPU、8GB内存、50GB磁盘空间

2.2 工具版本与下载链接

工具 推荐版本 下载链接
Jmeter 5.6.3 Apache Jmeter官网
InfluxDB 2.7.10 InfluxDB官网
Prometheus 2.53.3 Prometheus官网
Grafana 11.4.0 Grafana官网
Windows Exporter 0.24.0 GitHub Releases
NSSM 2.24 NSSM官网

三、详细安装步骤

3.1 Jmeter安装与配置

3.1.1 安装Java环境
  1. 下载JDK 11+(如Adoptium Temurin),安装时勾选"Add to PATH";
  2. 验证Java安装:打开命令提示符,输入java -version,显示版本信息则成功。
3.1.2 安装Jmeter
  1. 下载Jmeter二进制zip包(如apache-jmeter-5.6.3.zip);
  2. 解压至C:\jmeter,进入C:\jmeter\bin,双击jmeter.bat启动;
  3. 验证启动:打开界面后,右键"Test Plan"→"Add"→"Threads (Users)"→"Thread Group",若能正常添加则安装成功。
3.1.3 安装InfluxDB插件
  1. 下载jmeter-influxdb2-listener-plugin(如jmeter-plugins-influxdb2-listener-2.8.jar);
  2. 将jar包复制到C:\jmeter\lib\ext目录,重启Jmeter。

3.2 InfluxDB安装与配置

3.2.1 安装InfluxDB
  1. 下载InfluxDB Windows安装包(如influxdb2-2.7.10-windows-amd64.msi);
  2. 双击安装,按向导完成,默认安装路径C:\Program Files\InfluxData\InfluxDB
  3. 启动服务:打开PowerShell(管理员),输入net start influxdb
3.2.2 初始化配置
  1. 访问http://localhost:8086,首次登录创建管理员账号(如admin/admin123);
  2. 创建Organization (如jmeter-org)、Bucket (如jmeter,保留默认7天数据保留期);
  3. 生成Token :进入"Data"→"Tokens"→"Generate Token"→"Read/Write",保存Token(如my-token-xxxx)。

3.3 Prometheus安装与配置

3.3.1 安装Prometheus
  1. 下载Prometheus Windows zip包(如prometheus-2.53.3.windows-amd64.zip);

  2. 解压至C:\Prometheus,修改prometheus.yml配置文件:

    复制代码
    global:
      scrape_interval: 15s  # 全局抓取间隔
    scrape_configs:
      - job_name: 'prometheus'  # 监控自身
        static_configs:
          - targets: ['localhost:9090']
      - job_name: 'windows'  # 监控Windows服务器
        static_configs:
          - targets: ['localhost:9182']  # Windows Exporter端口
3.3.2 注册为Windows服务(使用NSSM)
  1. 下载NSSM,解压至C:\nssm,将nssm.exe复制到C:\Windows\System32
  2. 打开命令提示符(管理员),输入nssm install Prometheus,在弹出窗口配置:
    • PathC:\Prometheus\prometheus.exe
    • Arguments--config.file=C:\Prometheus\prometheus.yml
  3. 启动服务:nssm start Prometheus,验证:访问http://localhost:9090,显示Prometheus界面。

3.4 Windows Exporter安装(Prometheus监控依赖)

  1. 下载Windows Exporter MSI包(如windows_exporter-0.24.0-amd64.msi);
  2. 双击安装,默认端口9182,服务自动启动;
  3. 验证:访问http://localhost:9182/metrics,显示系统指标数据。

3.5 Grafana安装与配置

3.5.1 安装Grafana
  1. 下载Grafana Windows zip包(如grafana-11.4.0.windows-amd64.zip);
  2. 解压至C:\Grafana,进入C:\Grafana\bin,双击grafana-server.exe启动;
  3. 验证:访问http://localhost:3000,默认账号admin/admin,首次登录需修改密码。
3.5.2 添加数据源
  1. 添加InfluxDB数据源

    • 左侧菜单"Connections"→"Add new connection"→搜索"InfluxDB";
    • URLhttp://localhost:8086Token:输入InfluxDB生成的Token;
    • Organizationjmeter-orgBucketjmeter,保存并测试连接。
  2. 添加Prometheus数据源

    • 左侧菜单"Connections"→"Add new connection"→搜索"Prometheus";
    • URLhttp://localhost:9090,保存并测试连接。
3.5.3 导入仪表盘
  1. 导入Jmeter测试结果仪表盘:左侧"+"→"Import"→输入ID 17440(JMeter Report InfluxDB2.0);
  2. 导入Windows系统监控仪表盘:输入ID 10467(Windows Exporter Dashboard);
  3. 选择对应数据源(InfluxDB/Prometheus),完成导入。

四、工具集成与验证

4.1 Jmeter与InfluxDB集成

  1. 打开Jmeter,创建测试计划,添加"Thread Group"(10用户,Ramp-Up 10秒);
  2. 添加"HTTP Request"(测试目标URL,如https://www.example.com);
  3. 添加"Backend Listener":
    • Backend Listener Implementationio.github.mderevyanko.aqa.visualizer.InfluxDatabaseBackendListenerClient
    • Parameters
      • influxDBUrlhttp://localhost:8086
      • influxDBTokenmy-token-xxxx
      • influxDBOrganizationjmeter-org
      • influxDBBucketjmeter
      • testNamemy-test

4.2 完整流程验证

  1. 启动服务:确保InfluxDB、Prometheus、Grafana服务运行;
  2. 运行Jmeter测试:点击Jmeter启动按钮,执行测试计划;
  3. 验证数据写入
    • InfluxDB:访问http://localhost:8086→"Explore"→查询from(bucket: "jmeter") |> range(start: -1m),查看是否有数据;
    • Grafana:打开导入的Jmeter仪表盘,观察实时测试指标(响应时间、吞吐量);
  4. 验证系统监控:查看Windows仪表盘,确认CPU、内存等指标正常显示。

五、常见问题解决

5.1 端口冲突

  • 症状:服务启动失败,提示"端口被占用";
  • 解决 :修改配置文件更换端口(如Grafana默认3000→8080,在C:\Grafana\conf\custom.ini中设置http_port=8080)。

5.2 防火墙阻止连接

  • 症状:Grafana无法访问InfluxDB/Prometheus;
  • 解决 :开放端口(以8086为例):
    • 控制面板→"Windows Defender防火墙"→"高级设置"→"入站规则"→"新建规则"→"端口"→输入8086→"允许连接"。

5.3 Jmeter数据未写入InfluxDB

  • 检查项
    1. InfluxDB Token权限是否为"Read/Write";
    2. Jmeter插件是否放置在lib/ext目录;
    3. Backend Listener参数是否正确(尤其Organization和Bucket名称)。

六、部署主要用途

  1. 性能测试全链路监控

    实时跟踪Jmeter测试过程中的响应时间、错误率、吞吐量,结合系统资源(CPU、内存)变化,定位性能瓶颈。

  2. 系统稳定性监控

    通过Prometheus+Windows Exporter长期监控服务器指标,Grafana设置告警(如CPU使用率>80%),及时发现异常。

  3. 测试报告可视化

    替代Jmeter原生报告,Grafana仪表盘支持自定义图表(如响应时间分布、请求趋势),便于团队协作与报告分享。

  4. 多场景对比分析

    存储历史测试数据(InfluxDB),对比不同版本/环境下的性能差异,优化系统设计。

七、工具版本与端口汇总表

工具 版本 默认端口 配置文件路径
Jmeter 5.6.3 - C:\jmeter\bin\jmeter.properties
InfluxDB 2.7.10 8086 C:\Program Files\InfluxData\InfluxDB\influx-configs
Prometheus 2.53.3 9090 C:\Prometheus\prometheus.yml
Grafana 11.4.0 3000 C:\Grafana\conf\custom.ini
Windows Exporter 0.24.0 9182 -

通过以上步骤,即可在Windows环境下完成Jmeter+Grafana+InfluxDB+Prometheus的部署与集成,实现性能测试与系统监控的一体化可视化平台。

相关推荐
五点六六六3 小时前
前端常见的性能指标采集
前端·性能优化·架构
海底火旺5 小时前
单页应用路由:从 Hash 到懒加载
前端·react.js·性能优化
鼠鼠我捏,要死了捏7 小时前
深入解析MongoDB分片原理与运维实践指南
mongodb·性能优化·sharding
拾光拾趣录8 小时前
内存泄漏的“隐形杀手”
前端·性能优化
惜.己18 小时前
pytest中使用skip跳过某个函数
开发语言·python·测试工具·pytest
慧都小项1 天前
自动化UI测试工具TestComplete的AI双引擎:即时数据集 + 自愈测试
自动化测试·测试工具·llm·数据驱动测试·hipaa标准
鼠鼠我捏,要死了捏1 天前
基于Redisson实现高并发分布式锁性能优化实践指南
性能优化·分布式锁·redisson
笑衬人心。1 天前
后端项目中大量 SQL 执行的性能优化
sql·spring·性能优化