☰
Jmeter+Influxdb+Grafana实现压测监控平台
2026/10/11 1:21:15 网站建设 项目流程

本篇文章只是浅浅的讲一下实现,不会过多的讲一些细节
Influxdb和Grafana是通过docker部署,所以参考时注意部署方式是否一致
2026-10-10更新:文章底部针对grafana-dashboard-5496模板进行自定义,达到预期效果

所需软件列表

  • JDK–运行Jmeter等工具时依赖
  • Jmeter–实现性能压测的开源工具
  • docker–容器能实现环境部署,启动非常方便

1、jdk下载及安装

点击此处进入下载页,需要注意选择系统和版本

注意!下载完后要配置一下环境变量,deepseek或者百度搜索搞一下即可
注意!下载完后要配置一下环境变量,deepseek或者百度搜索搞一下即可
注意!下载完后要配置一下环境变量,deepseek或者百度搜索搞一下即可
MAC用户似乎不需要特殊设置,伙伴们自己尝试一下

还想多说一句:
安装完验证下是否安装和配置成功,在dos窗口或者bash内输入:java -version
就这一个操作好多同学都会出现问题,大概率原因是你不是新开的窗口去输入,建议退出所有的dos或bash窗口后再输入命令,出现以下内容即为成功

2、Jmeter安装

直接去Apache Jmeter官网下载最新版即可(5.6.3),下载二进制包


解压操作不会的请自行百度或者deepseek一下

3、docker安装

  1. docker这玩意还是挺看电脑配置的,大家一定要注意自己电脑配置是否到位。
  2. 安装到非系统盘参考我的另外一篇文章:Docker安装到D盘(包教包会)
  3. 安装完后敲docker version命令爽一下

    常用命令
    列出已下载docker镜像:docker images
    列出运行中的docker容器:docker ps
    列出运行中+已停止docker容器:docker ps –a
    停止容器:docker stop [dockercontainerid]
    启动容器:docker start[dockercontainerid]
    删除容器:docker rm [dockercontainerid]

4、实战

4.1 Jmeter新建测试脚本

win用户建议使用管理员权限启动Jmeter,重要的不是为什么,重要的是这样比较稳妥
以下仅供参考,只要有用例和Backend Listener,基本上也能实现后面的流程

中间省略调试接口用例的步骤

backkend配置参考如下:
influx v1版本:http://localhost:8086/write?db=jmeter
influx v2版本:http://locahost:8086/api/v2/write?org=组织名&bucket=jmeter&precision=ns

释义: org:组织 查找命令influx org listbucket:桶,相当于数据库表。查找命令influx bucket listprecision:时间戳精度。jmeter返回的是nm,如果使用ms会报错。想了解细节的可以自行搜索

最后别忘记保存脚本!!!

4.2 docker部署influxdb

这个就是纯纯的一堆命令,咔咔的跟着敲就行

4.2.1 启动docker
4.2.2下载influxdb镜像
dockerpull influxdb:latest/或指定版本2.7.3

这一步很多人都会提示失败,大都一个原因:默认的镜像源是国外的需要我们改成国内的,很简单。
打开docker desktop - 点击settings(一个齿轮图标) - 左侧菜单选择Docker Engine
把我这个镜像完完全全复制到你的文件中,没有这个字段的,直接放在文件的最下方即可。注意格式(可以使用json.cn查看格式是否正确):
“registry-mirrors”: [
“https://docker.xuanyuan.me”,
“https://docker.mirrors.ustc.edu.cn”,
“https://hub-mirror.c.163.com”,
“https://registry.docker-cn.com”
]
最后点击右下角的apply&restart,等待反馈即可

4.2.3 完成上一步后,查询下是否已经部署成功
dockerimages

4.2.4 启动容器改名为jmeterdb
dockerrun-d-p8086:8086-p8083:8083--name=jmeterdb influxdb

参数释义:
-d:Detached 模式(后台运行容器),无界面的意思
-p:端口映射,将容器内的端口映射到主机的端口8086->8086 | 8083->8083
–name=xx:为容器指定名称(便于后续管理,如 docker stop xx)
influxdb:指的是刚才拉取的最新的那个版本的镜像

4.2.5 验证是否启动
dockerps

4.2.6 执行命令进入容器内部
dockerexec-itjmeterdbbash

4.2.7 此时还需要敲个命令,来安装influx相关

influx setup 是 InfluxDB v2 中的一个 初始化配置命令,用于首次安装 InfluxDB 2.x 后完成基础设置。

influx setup

当首次启动 InfluxDB 2.x(尤其是通过 Docker 或全新安装时),必须通过 influx setup 完成以下配置:

  • 创建管理员账号(用户名/密码)
  • 设置初始组织(Organization)
  • 创建存储桶(Bucket)
  • 生成认证令牌(Token)
    以上这些是 InfluxDB 2.x 运行的最小必需配置。

大概就是以下这种文案提示,一步步操作即可,想知道细节的可以自行查找

? Username admin
? Password ********
? Organization my-org
? Bucket my-bucket
? Retention Period 72h
? Token my-token

4.2.8 创建数据库(区分influx版本)

查看influx版本

influx version

v1:create database jmeter
v2:
第一种方式:先执行influx v1 shell进入兼容模式,然后再敲create database jmeter
第二种方式:influx bucket create --name <数据库名> --org <组织名称或ID> --retention <保留策略>

retention:数据保留时间(如 72h、30d),不指定则永久保留

4.2.9 查看创建的数据库/桶

v1:show databases;
v2:influx bucket list

恭喜你!!!此时就可以运行jmeter的用例进行测试验证了

4.2.10 数据查询

前9步都是为了这一步的验证,以及对我们辛苦劳作的回报
v1:select * from 数据库名
v2:

from(bucket:"your_bucket_name")|>range(start: -time_range)// 时间范围|>filter(fn:(r)=>r._measurement=="measurement_name")// 筛选测量值|>filter(fn:(r)=>r._field=="field_name")// 筛选字段

其实直接浏览器内输入localhost:8086,输入账号密码登录后查看也很方便,方法自行搜索。

4.3 docker部署grafana
4.3.1 拉取安装
dockerpull grafana/grafana:latest/或指定版本

没看错必须是grafana/grafana

4.3.2 启动
dockerrun-d-p3000:3000--name=jmeterGraf grafana/grafana

Windows可能存在无法绑定3000端口的情况,可以先查询下端口占用,换一个端口号

netstat-ano|finstr :8080

如果以上可使用的话就用8080启动

dockerrun-d-p8080:3000--name=jmeterGraf grafana/grafana
4.3.3 验证是否启动
dockerps
4.3.4 访问Grafana控制台

链接:localhost:3000
初始用户名/密码:admin/admin,跳过修改密码即可

4.3.5 创建数据源

依次点击菜单的connections-datasources,懒的人直接复制这里http://localhost:8080/connections/datasources,注意端口号改成自己的

点击Add data source,搜索框内输入influxdb并点击

最关键的一步来了!!!务必仔细看

  • Query language基本上选择flux就可以了,因为前面influxdb使用的是v2版本
  • HTTP URL填写http://host.docker.internal:8086
    Timeout内随便写一个差不多的就行
  • Auth选中Basic auth| Basic Auth Details中填写在部署influxdb时创建的user和password(4.2的第7步)
  • Custom HTTP Headers 这个必须有,要不然会报错Unauthorization。
    填写也需要特殊注意!!

header填写:Authorization
Value填写:Token 你的token【格式是Token+空格+token值】

获取token方法: 进入jmeterdb容器,是不是忘记命令了?docker exec -it jmeterdb bash
然后输入命令influx auth list --user 你的用户名(保持同Basic Auth Details一个用户名)


顺便插一下:借着刚拿到tokenjmeter的backend也配置一下token,这样能避免问题responseCode: 401, responseBody: {"code":"unauthorized","message":"unauthorized access"}。填写完保存即可。

  • InfluxDB Details配置

Organization:组织名,还记得怎么找吗?influx org list
database:就是上面你创建的数据库名

OK !!!以上是不是都弄完了?!

最后一步:点击Save&Test,出现如下图所示即可

4.3.6 配置dashboard,按照下图依次点击


进入如下图所示页面(三种方式:导入json文件、输入模板id或者URL、导入文件内容)

导入后进入如下页面

name:可以自定义
DB name:选择influxdb即可
Mesurement name:选择创建自己创建的


点击上图的import按钮,进入如下页面。恭喜你,完成所有配置了!

此时想着体验一把对不对?执行用例发现压根就进不来数据啊!
这里有坑,原来的模板都是基于influx v1的,导致使用influx v2时报错。根本原因是查询语法完全不一样!!!!

怎么查看这个报错到底是哪里错了呢?
首先点击右上角的三个点,选择edit

这样就进入了面板的编辑页,下面红框就是报错原因。

好吧,那我们主动修改一下吧!!!!
Data Source:选择influxdb
语句:

from(bucket:"jmeter")|>range(start:-1m)|>filter(fn:(r)=>r._measurement=="jmeter")|>filter(fn:(r)=>r._field=="count")|>group()|>sum()|>map(fn:(r)=>({_value: r._value,description:"Total Requests"}))

然后执行一下用例,点击Query inspector按钮,点击Refresh

以下这就是调整好的结果

赶快试一下吧!!!!!!!其他的也需要调整!慢慢调吧!!!

grafana-5496模板自定义文件,点击可下载使用

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询