- 下载docker的influxdb镜像:
docker pull incluxdb
默认下载的是latest版本 - 下载docker的frafana镜像:
docker pull grafana/grafana
- 创建grafana网络:
docker network create grafana
- 查看docker容器的的镜像:
docker images
一、InfluxDB部署启用
- InfluxDB(时序数据库)监控数据统计。每毫秒记录一下电脑内存的使用情况,然后就可以根据统计的数据,利用图形化界面(InfluxDB V1一般配合Grafana)制作内存使用情况的折线图(抄来的,知道定义就可以)
- 以后台的方式启动influxdb:
docker run -d --name=influxdb --network grafana -p 8086:8086 -v ${PWD}/influxdb/:/var/lib/influxdb/ influxdb:latest
docker run
(运行容器),-d
(以后台的方式运行),--name=influxdb
(相当于域名),--network grafana
(指向新建的grafana网络),-p 8086:8086
(前一个8086表示本机端口,后一个表示docker容器里边的端口),-v ${PWD}/influxdb/:/var/lib/influxdb/
(将docker里边(:var/lib/influxdb
)的influxdb数据信息挂载到当前目录下的influxdb目录),````influxdb:latest```(influxdb的版本信息)- 创建数据库:
docker exec it influxdb influx
进入到influxdb终端,执行数据库创建:create database jmeter;
- 查看创建的数据库:
show databases;
- 使用数据库:
use jmeter;
- 查看数据举例(我这里已经跑过数据了所以有数据):
select * from jmeter limit 3;
- 退出influxdb命令终端:
exit
二、grafana部署启用
- Grafana是个可视化面板(Dashboard)工具,非常beautiful,功能仪表盘齐全,还可导入不同样式或者自己定制编写面板。传送门:Grafana的dashboards地址
- 后台方式运行容器:
docker run -d --name grafana --network grafana -p 3000:3000 grafana/grafana:latest
(命令解释参照之前influxdb的,这里不需要挂载目录) - 默认登录账号:admin,密码:admin(登录后可自行修改密码,了解更多请出门转至grafana官网:https://grafana.com)
- 查看正在运行的镜像:
docker ps
- 现在你就可以打开grafana的浏览器页面查看了:
http://hostaddress:3000
- 配置数据源:
进入设置按钮>DataSources>Add data source>选择influxDB - 配置influxDB数据源信息:
- 导入Dashboards:到官网导入,以id5496为例子:
https://grafana.com/grafana/dashboards/5496
在右边有个Download JSON
点击它进行下载json串,之后把他复制进manage的import via panel json(最新版本上边那个用不了)进行load - 就可以看到我们导入的Dashboard也面了,展示(我这边已经跑过数据了)
三、jmeter配置后端监听器
- 进入jmeter配置Backend Listener:线程组>add>Listener>Backend Listenr
需要填写:influxdbUrl(influxDb的服务器地址),application,measurement(这里要和grafana添加数据源里边的measurement保持一致) - 到此我们的配置工作就基本完成了。跑一次jmeter的接口请求,就可以看到上边Dashboard的各种数据面板了。
四、为influxdb添加数据处理策略
- 考虑到如果我们用这套框架来做测试环境的接口持续监控的话,influxdb会持续写入数据,这样有可能把我们的服务器内存耗光,所以我们需要给influxdb数据存储编写一个数据处理策略,定时删除数据
- 查看默认策略:进入influxdb终端:
show retention policies on jmeter(你创建的数据库);
红线上部分是刚开始默认的,default开始为true
name: 策略名称;duration:保留时间,0s表示永久保存;shardGroupDuration:influxDb的基本存储结构,时间分区;replicaN,副本个数;default:是否为默认策略。 - 修改策略:
create rentention policy "1_day" on "jmeter" duration 1d replication 1 shard duration 3h default;
为jmeter库创建一个名称为1_day的策略,保存时间为1天,shardduration为3h
五,linux服务器执行jmx脚本
- 把jmx文件放在Linux服务器去执行,下载jmeter.tgz,解压文件
tar -zxvf apach-jmeter-5.3.tgz
并配置路径到环境变量中vim /etc/profile
编辑添加环境变量export PATH=/data/jmeter/apache-jmeter-5.3/bin/:$PATH
(解压后jmeter的bin目录的路径) - 以后台线程的方式运行jmx脚本:
setid jmeter -n -t xxx.jmx -l xxx.jtl
- 注意jmeter influxdb grafana都在同一台服务器的时候 ,请把jmx配置文件(.jmx实际上就是一个配置文件,并不是代码程序)influxdb的ip地址写成localhost或者127.0.0.1