Jmeter+Influxdb+Grafana实现压测监控平台

本篇文章只是浅浅的讲一下实现,不会过多的讲一些细节
InfluxdbGrafana是通过docker部署,所以参考时注意部署方式是否一致

所需软件列表

  • 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 list bucket:桶,相当于数据库表。查找命令 influx bucket list precision:时间戳精度。jmeter返回的是nm,如果使用ms会报错。想了解细节的可以自行搜索

在这里插入图片描述

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

4.2 docker部署influxdb

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

4.2.1 启动docker
4.2.2下载influxdb镜像
docker pull 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 完成上一步后,查询下是否已经部署成功
docker images

在这里插入图片描述

4.2.4 启动容器改名为jmeterdb
docker run -d -p 8086:8086 -p 8083:8083 --name=jmeterdb influxdb

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

4.2.5 验证是否启动
docker ps

在这里插入图片描述

4.2.6 执行命令进入容器内部
docker exec -it jmeterdb bash

在这里插入图片描述

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 拉取安装
docker pull grafana/grafana:latest/或指定版本

没看错必须是grafana/grafana

4.3.2 启动
docker run -d -p 3000:3000 --name=jmeterGraf grafana/grafana

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

netstat -ano | finstr :8080

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

docker run -d -p 8080:3000 --name=jmeterGraf grafana/grafana
4.3.3 验证是否启动
docker ps
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
在这里插入图片描述
在这里插入图片描述

以下这就是调整好的结果
在这里插入图片描述
赶快试一下吧!!!!!!!其他的也需要调整!慢慢调吧!!!

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值