一、工具作用与整体架构

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 工具版本与下载链接

工具推荐版本下载链接
Jmeter5.6.3Apache Jmeter官网
InfluxDB2.7.10InfluxDB官网
Prometheus2.53.3Prometheus官网
Grafana11.4.0Grafana官网
Windows Exporter0.24.0GitHub Releases
NSSM2.24NSSM官网

三、详细安装步骤

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),对比不同版本/环境下的性能差异,优化系统设计。

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

工具版本默认端口配置文件路径
Jmeter5.6.3-C:\jmeter\bin\jmeter.properties
InfluxDB2.7.108086C:\Program Files\InfluxData\InfluxDB\influx-configs
Prometheus2.53.39090C:\Prometheus\prometheus.yml
Grafana11.4.03000C:\Grafana\conf\custom.ini
Windows Exporter0.24.09182-

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.pswp.cn/bicheng/90970.shtml
繁体地址,请注明出处:http://hk.pswp.cn/bicheng/90970.shtml
英文地址,请注明出处:http://en.pswp.cn/bicheng/90970.shtml

如若内容造成侵权/违法违规/事实不符,请联系英文站点网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【Kubernetes】使用Deployment进行的资源调度,资源清理,伸缩与更新管控

Kubernetes Deployment 实战:从资源清理到伸缩与更新管控 一、基础准备:清理闲置 ReplicaSet 在使用 Deployment 时,每次更新都会生成新的 ReplicaSet(简称 RS),旧的 RS 会被保留但设置为 DESIRED0。这些闲…

stm32使用USB虚拟串口,因电脑缺少官方驱动而识别失败(全系列32单片机可用)

驱动下载地址 官网地址:https://www.st.com/en/development-tools/stsw-stm32102.html

枚举中间位置基础篇

参考资料来源灵神在力扣所发的题单,仅供分享学习笔记和记录,无商业用途。 核心思路: 一:直接直接用数据结构记录需要的数据,在枚举右,维护左的循环中,删除当前位置的元素即可达成一样效果 二…

企业选择将服务器放在IDC机房托管的优势

在服务器作为数据存储和传输的核心设备的社会环境中,服务器的稳定性和安全性会直接影响到企业业务的连续性和用户的满意程度,随着云计算技术和大数据的兴起,企业对于服务器的需求也在日益增加,而如何高效、安全的管理服务器则是各…

自动化UI测试工具TestComplete的AI双引擎:即时数据集 + 自愈测试

随着敏捷开发和持续交付模式的普及,传统的软件测试方法正面临着前所未有的挑战。测试团队在追求快速迭代的同时,往往陷入测试数据准备和测试维护的泥潭,严重制约了交付效率和质量保障能力。 TestComplete作为业界领先的自动化测试工具&#…

用KNN实现手写数字识别:基于 OpenCV 和 scikit-learn 的实战教学 (超级超级超级简单)

用KNN实现手写数字识别:基于 OpenCV 和 scikit-learn 的实战教学在这篇文章中,我们将使用 KNN(K-Nearest Neighbors)算法对手写数字进行分类识别。我们会用 OpenCV 读取图像并预处理数据,用 scikit-learn 构建并训练模…

数据结构自学Day15 -- 非比较排序--计数排序

一、计数排序(Counting Sort)计数排序是一种非比较型的排序算法,它的核心思想是:利用“元素的值”来确定它在结果数组中的位置,通过“统计每个数出现的次数”来完成排序。二、如何实现计数排序(核心步骤&am…

k8s的权限

来自博客:25-k8s集群中-RBAC用户角色资源权限_权限 资源 角色-CSDN博客 一.RBAC概述(基于角色的访问控制) 1.图解 用户: 1.user 2.serviceAccount 3.Group 用户角色 1.Role:局部资源角色 2.clusterRole:全局资源角色额 角色绑…

C++ - 仿 RabbitMQ 实现消息队列--服务端核心模块实现(三)

目录 队列数据管理 代码实现 测试代码 绑定信息(交换机-队列)管理 代码实现 测试代码 队列数据管理 当前队列数据的管理,本质上是队列描述信息的管理,描述当前服务器上有哪些队列。 定义队列描述数据类 队列名称是否持久化标志是否独占标志是否自…

51c自动驾驶~合集9

自己的原文哦~ https://blog.51cto.com/whaosoft/11627386 #端到端1 说起端到端,每个从业者可能都觉得会是下一代自动驾驶量产方案绕不开的点!特斯拉率先吹响了方案更新的号角,无论是完全端到端,还是专注于planner的模…

时间长了忘记jupyter的环境是哪个了

有这些但是忘记是哪个了jupyter kernelspec list查看内核路径,这个内核是用来告诉jupyter 去哪找内核配置的到这个路径下打开json文件查看使用的python环境从而确定是哪个conda环境为jupyter使用的python环境jupyter的工作原理:在创建conda环境后会安装j…

PYTHON从入门到实践-15数据可视化

数据可视化是数据分析中不可或缺的一环,它能够将抽象的数据转化为直观的图形,帮助我们更好地理解数据特征和发现潜在规律。本文将介绍如何使用Python中的Matplotlib和Plotly库进行数据可视化,并通过掷骰子的概率模拟案例展示可视化的实际应用…

Spring IOC 容器 **默认注册 Bean** 的 8 条规则

Spring IOC 容器 默认注册 Bean 的 8 条规则 (Spring Framework 6.x 源码级总结)阅读提示:把下面 8 条规则背下来,再读 Spring 源码时,你会在任何一行代码里立刻知道「这个 BeanDefinition 是从哪儿来的」。1️⃣ 环境…

29.【.NET8 实战--孢子记账--从单体到微服务--转向微服务】--单体转微服务--用户配置服务

用户配置服务是孢子记账中最简单的部分。简单说,用户配置服务就是用户自定义的配置项存储服务,用于我们的APP根据用户的配置实现指定的功能。它提供了一个简单的接口,允许用户存储和检索他们的配置数据。就目前来说,用户配置只有一…

Python实现PDF按页分割:灵活拆分文档的技术指南

Python实现PDF按页分割:灵活拆分文档的技术指南 PDF文件处理是日常工作中的常见需求,特别是当我们需要将大型PDF文档拆分为多个部分时。本文将介绍如何使用Python创建一个灵活的PDF分割工具,能够根据用户指定的页数范围任意分割文档。 需求分…

「iOS」——GCD其他方法详解

GCD学习GCD其他方法dispatch_semaphore (信号量)**什么是信号量**dispatch_semaphore主要作用dispatch_semaphore主要作用异步转同步设置一个最大开辟的线程数加锁机制dispatch_time_t 两种形式GCD一次性代码(只执行一次)dispatch_barrier_async/sync栅栏…

【图像处理基石】如何实现一个车辆检测算法?

基于AI的车牌检测和识别算法 问题描述、应用场景与难点 问题描述 车牌检测和识别是计算机视觉领域的一个特定任务,主要包含两个核心步骤: 车牌检测:从图像中准确定位车牌的位置和区域车牌识别:对检测到的车牌区域进行字符识别&…

计算机学报 2025年 区块链论文 录用汇总 附pdf下载

计算机学报 Year:2025 2024请看 1 Title: 基于区块链的动态多云多副本数据完整性审计方法研究 Authors: Key words: 区块链;云存储;多云多副本存储;数据完整性审计 Abstract: 随着云计算技术的快速发展和云存储服务的日益…

计算机网络-UDP协议

UDP(用户数据报协议)是传输层的一种无连接、不可靠、轻量级的协议,适用于对实时性要求高、能容忍少量数据丢失的场景(如视频流、DNS查询等)。以下是UDP的详细解析:1. UDP的核心特点特性说明无连接通信前无需…

子域名收集和c段查询

子域名收集方法一、sitesite: 要查询的域名可以查到相关网站二、oneforall (子域名查找工具)下载后解压的文件夹在当前文件夹打开终端然后运行命令 python oneforall.py --target xxxxxxxx(这里放你要查的网址) run最…