【性能测试】Jmeter+Grafana+InfluxDB+Prometheus Windows安装部署教程
一、工具作用与整体架构
1.1 各工具核心作用
工具 | 作用描述 | 关键特性 |
---|---|---|
Jmeter | 性能测试工具,模拟多用户并发请求,生成测试数据 | 支持HTTP/HTTPS、数据库等多种协议,可自定义测试场景 |
InfluxDB | 时序数据库,专门存储时间序列数据(如Jmeter测试结果) | 高写入性能,支持Flux查询语言,适合存储海量测试指标 |
Prometheus | 时序数据库,专注于系统监控指标收集(如CPU、内存、网络) | 支持数据拉取(Pull)模式,内置PromQL查询,适合监控服务器/应用指标 |
Grafana | 数据可视化平台,将InfluxDB和Prometheus数据以仪表盘形式展示 | 支持多数据源整合,丰富的图表类型,可自定义告警规则 |
1.2 整体架构关系
四者通过以下流程协同工作:
- Jmeter 模拟用户请求,生成性能测试数据(如响应时间、吞吐量);
- InfluxDB 存储Jmeter测试结果,通过Backend Listener实时写入;
- Prometheus 收集Windows服务器指标(如CPU使用率、内存占用),需配合Windows Exporter;
- 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环境
- 下载JDK 11+(如Adoptium Temurin),安装时勾选“Add to PATH”;
- 验证Java安装:打开命令提示符,输入
java -version
,显示版本信息则成功。
3.1.2 安装Jmeter
- 下载Jmeter二进制zip包(如
apache-jmeter-5.6.3.zip
); - 解压至
C:\jmeter
,进入C:\jmeter\bin
,双击jmeter.bat
启动; - 验证启动:打开界面后,右键“Test Plan”→“Add”→“Threads (Users)”→“Thread Group”,若能正常添加则安装成功。
3.1.3 安装InfluxDB插件
- 下载jmeter-influxdb2-listener-plugin(如
jmeter-plugins-influxdb2-listener-2.8.jar
); - 将jar包复制到
C:\jmeter\lib\ext
目录,重启Jmeter。
3.2 InfluxDB安装与配置
3.2.1 安装InfluxDB
- 下载InfluxDB Windows安装包(如
influxdb2-2.7.10-windows-amd64.msi
); - 双击安装,按向导完成,默认安装路径
C:\Program Files\InfluxData\InfluxDB
; - 启动服务:打开PowerShell(管理员),输入
net start influxdb
。
3.2.2 初始化配置
- 访问
http://localhost:8086
,首次登录创建管理员账号(如admin
/admin123
); - 创建Organization(如
jmeter-org
)、Bucket(如jmeter
,保留默认7天数据保留期); - 生成Token:进入“Data”→“Tokens”→“Generate Token”→“Read/Write”,保存Token(如
my-token-xxxx
)。
3.3 Prometheus安装与配置
3.3.1 安装Prometheus
- 下载Prometheus Windows zip包(如
prometheus-2.53.3.windows-amd64.zip
); - 解压至
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)
- 下载NSSM,解压至
C:\nssm
,将nssm.exe
复制到C:\Windows\System32
; - 打开命令提示符(管理员),输入
nssm install Prometheus
,在弹出窗口配置:- Path:
C:\Prometheus\prometheus.exe
- Arguments:
--config.file=C:\Prometheus\prometheus.yml
- Path:
- 启动服务:
nssm start Prometheus
,验证:访问http://localhost:9090
,显示Prometheus界面。
3.4 Windows Exporter安装(Prometheus监控依赖)
- 下载Windows Exporter MSI包(如
windows_exporter-0.24.0-amd64.msi
); - 双击安装,默认端口
9182
,服务自动启动; - 验证:访问
http://localhost:9182/metrics
,显示系统指标数据。
3.5 Grafana安装与配置
3.5.1 安装Grafana
- 下载Grafana Windows zip包(如
grafana-11.4.0.windows-amd64.zip
); - 解压至
C:\Grafana
,进入C:\Grafana\bin
,双击grafana-server.exe
启动; - 验证:访问
http://localhost:3000
,默认账号admin
/admin
,首次登录需修改密码。
3.5.2 添加数据源
-
添加InfluxDB数据源:
- 左侧菜单“Connections”→“Add new connection”→搜索“InfluxDB”;
- URL:
http://localhost:8086
,Token:输入InfluxDB生成的Token; - Organization:
jmeter-org
,Bucket:jmeter
,保存并测试连接。
-
添加Prometheus数据源:
- 左侧菜单“Connections”→“Add new connection”→搜索“Prometheus”;
- URL:
http://localhost:9090
,保存并测试连接。
3.5.3 导入仪表盘
- 导入Jmeter测试结果仪表盘:左侧“+”→“Import”→输入ID
17440
(JMeter Report InfluxDB2.0); - 导入Windows系统监控仪表盘:输入ID
10467
(Windows Exporter Dashboard); - 选择对应数据源(InfluxDB/Prometheus),完成导入。
四、工具集成与验证
4.1 Jmeter与InfluxDB集成
- 打开Jmeter,创建测试计划,添加“Thread Group”(10用户,Ramp-Up 10秒);
- 添加“HTTP Request”(测试目标URL,如
https://www.example.com
); - 添加“Backend Listener”:
- Backend Listener Implementation:
io.github.mderevyanko.aqa.visualizer.InfluxDatabaseBackendListenerClient
; - Parameters:
influxDBUrl
:http://localhost:8086
influxDBToken
:my-token-xxxx
influxDBOrganization
:jmeter-org
influxDBBucket
:jmeter
testName
:my-test
- Backend Listener Implementation:
4.2 完整流程验证
- 启动服务:确保InfluxDB、Prometheus、Grafana服务运行;
- 运行Jmeter测试:点击Jmeter启动按钮,执行测试计划;
- 验证数据写入:
- InfluxDB:访问
http://localhost:8086
→“Explore”→查询from(bucket: "jmeter") |> range(start: -1m)
,查看是否有数据; - Grafana:打开导入的Jmeter仪表盘,观察实时测试指标(响应时间、吞吐量);
- InfluxDB:访问
- 验证系统监控:查看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
- 检查项:
- InfluxDB Token权限是否为“Read/Write”;
- Jmeter插件是否放置在
lib/ext
目录; - Backend Listener参数是否正确(尤其Organization和Bucket名称)。
六、部署主要用途
-
性能测试全链路监控:
实时跟踪Jmeter测试过程中的响应时间、错误率、吞吐量,结合系统资源(CPU、内存)变化,定位性能瓶颈。 -
系统稳定性监控:
通过Prometheus+Windows Exporter长期监控服务器指标,Grafana设置告警(如CPU使用率>80%),及时发现异常。 -
测试报告可视化:
替代Jmeter原生报告,Grafana仪表盘支持自定义图表(如响应时间分布、请求趋势),便于团队协作与报告分享。 -
多场景对比分析:
存储历史测试数据(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的部署与集成,实现性能测试与系统监控的一体化可视化平台。