【实现原理】
通过influxdb数据库存储jmeter的结果,再通过grafana采集influxdb数据库数据,完成监控平台展示
一、时间序列数据InfluxDB
1.InfluxDB下载安装
官网下载
https://portal.influxdata.com/downloads/
官网最新版:
(1) 安装influxDB
安装在被测服务器上
influxDX官方文档
OS X 10.8或者更高版本的用户,用 brew直接安装
brew install influxdb
//启动influxdb服务:
brew services start influxdb
//停止influxdb服务:
brew services stop influxdb
//查看是否启动成功:
ps -ef | grep influxd
//删除influxdb:
brew uninstall influxdb
//如果使用brew 不能彻底删除,请删除文件:
rm -rf ~/.influxdbv2
(2)启动 influxdb服务
查看是否启动成功
(3) 创建初始账号(端口默认 8086)
服务启动完之后,默认端口号是8086,浏览器打开localhost:8086来访问控制台。
打开控制台,会先创建一个用户
organization:InfluxDB组织是一组用户的工作区。所有仪表板、任务、存储桶和用户都属于一个组织。
bucket:所有 InfluxDB 数据都存储在一个存储桶中。一个桶结合了数据库的概念和存储周期(时间每个数据点仍然存在持续时间)。一个桶属于一个组织
bucket schema:具有明确的schema-type的存储桶需要为每个度量指定显式架构。测量包含标签、字段和时间戳。显式模式限制了可以写入该度量的数据的形状。
然后点击“continue”
token一定要保存下来,因为默认没办法查。
ulCoG6Xb_8FZtZ5TFDzC3gLn6r62N6aB5r4KqJZAm6KUvKyILfufMbijx9L6bmmlhS5BpbtK8stFbuyHsncT1Q==
按步骤操作完成后就完成初始化了。
点击“QUICK START”
2. influxdb 交互工具
- influxDB用户界面(UI) :上面localhost:8086打开的界面
- influx命令行界面
- influxDB HTTP API
3. 命令行influxdb-cli
influxdb-cli 官方文档
influxdb-cli各命令官方文档
(1)influxdb-cli安装
安装命令行:brew install influxdb-cli
(2)配置 Influx CLS
influx config create --config-name may2024\
--host-url http://localhost:8086 \
--org "mayInfluxDB" \
--token "ulCoG6Xb_8FZtZ5TFDzC3gLn6r62N6aB5r4KqJZAm6KUvKyILfufMbijx9L6bmmlhS5BpbtK8stFbuyHsncT1Q==" \
--active
(3)创建 bucket : jmeter
influx bucket create --name jmeter -c may2024
查看所有的bucket
influx bucket list
influx bucket list 用法官方文档
List all buckets
List a bucket by name
List a bucket by ID
(4) 写数据和查询数据
influx write官方文档
influx query官方文档
写入数据:influx write --bucket bucket_test1 --url https://influx-testdata.s3.amazonaws.com/air-sensor-data-annotated.csv
查询数据:influx query ‘from(bucket:“bucket_test1”) |> range(start:-30m)’
influx query \
--profilers operator,query \
'from(bucket:"jmeter") |> range(start:-1m)'
4. InfluxDB HTTP API
安装python依赖:pip3 install influxdb-client
二、grafana安装
官网:
https://grafana.com/grafana/download
用brew安装grafana,启动grafana
brew install grafana
brew services start grafana
1. 安装 grafana
2. 启动 grafana
brew services start grafana
关闭服务
brew services stop grafana
3. 进入grafana
启动完成后打开浏览器输入http://localhost:3000
进入grafana登录页面
(默认用户名和密码都为admin,进入后可以更新密码,也可以跳过)
4. 添加数据源(含IP)
选择influxDB数据源
填写以下信息即可
注意:url中的端口要和 influx的一致
图中URL是 influxDB数据库访问的地址
Query language选择【influxQL】或【Flux】的设置有区别
-
4.1【influxQL】
Query language选择 influxQL
Header:
Authorization
Value:
Token ulCoG6Xb_8FZtZ5TFDzC3gLn6r62N6aB5r4KqJZAm6KUvKyILfufMbijx9L6bmmlhS5BpbtK8stFbuyHsncT1Q==
4.2 【Flux】
- Query language选择 Flux
保存测试后,出现以下提示,说明数据源连接成功
保存测试查看数据源是否连接成功:
查看已连接的数据源
5. 导入grafana展示模板
(1)获取模板ID
官方模板
搜索 jmeter(模板可以根据自己喜好选择)
(2)导入模板
效果如下:
注意:数据源中连接设置中:
- Query language选择 influxQL时,仪表盘正常
有黄色感叹号的,可能是模板版本的匹配问题,可以更换其他版本
- Query language选择 Flux时,仪表板各模块左上角有红色感叹号❗️(还没有找到原因)
三、jmeter配置
1.jmeter中,添加“监听器 -> 后端监听器”
通过后端监听器,将聚合报告的值通过 influxdb采集,在grafana中显示出来
measurement:表,可以取jmeter,也可以取其他的表名
四、 无界面压测
进入 jmx脚本文件目录下,执行以下命令:
jmeter -n -t jmeter2024.jmx -l result001.jtl -e -o reports
grafana实时监控页面
数据说明:
CPU(%):
- idle: 剩余CPU数
- User:用户空间
- System:系统内核
- Steal: 虚拟机所占用的百分比
- Softirq: 应用程序所占用百分比
其他平台:windows/linux/docker
windows/linux/docker容器下 jmeter+influxdb+grafana搭建
windows增加部分:
influxdb.conf文件的修改
修改 3 个部分