【实现原理】
通过influxdb数据库存储jmeter的结果,再通过grafana采集influxdb数据库数据,完成监控平台展示

一、时间序列数据InfluxDB
1.InfluxDB下载安装
官网下载
https://portal.influxdata.com/downloads/
官网最新版:
(1) 安装influxDB
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
(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



(4) 写数据和查询数据
写入数据: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

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中,添加"监听器 -> 后端监听器"

四、 无界面压测
进入 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 个部分

