前言
我们做性能测试的时候使用Jmeter自身的监听器统计压测结果虽然可以统计到各个维度的信息,比如TPS,RT,Err等,但是这个Jmeter本身的监控没有办法做存储,也没有办法去找历史数据,所以如果想要持久化储存数据,我们就需要采用监控平台+ influxdb时序数据库进行性能测试结果的监控。
Jmeter+Influxdb+grafana工具之间的关系
- Jmeter性能测试工具,可以收集到服务器的性能测试指标: 统计 TPS、响应时间、线程数、错误率等信息;Jmeter通过一个【后端监听器】可以将统计出的结果实时异步发送到 InfluxDB 中
- influxdb: 时序数据库, 按照时间序列,记录数据,并可以永久性保存数据
- grafana:监控大屏, 一个web端的展示平台, 通过更换模板展示不同的效果,可以直接拉取influxdb数据显示出来在页面图标里,直观并美观。
工具安装和部署
1、grafana
介绍: 是一款用go编写的开源应用,用于大规模指标数据的可视化展示,是网络架构和应用分析中最流行的时序数据展示工具。
- 支持的数据库:graphite、influxdb、prometheus等 ,都是时序数据库。
- 组成:
- DashBoard:仪表盘 ,包括图形和界面,可以做聚合数据展示,了解整体的数据情况;
- Row:行,展示的数据结构是按照行来读取的
- Panel:面板,支持定制化面板。
- metrics: 监控资源,数据变化的情况
- logs:日志,拿到日志信息处理和展示
- traces: 跟踪链路的串联
安装:
- 官方网站:grafana.com网站
- 第一步: 先把老师给的安装包放在服务器上,这台服务器建议不要是被测试服务器,影响性能;
- 第二步:在线安装 yum install -y grafana-xxx.rpm 【或者这个命令: rpm -ivh grafana-*.rpm】
- 第三步:启动grafana服务:systemctl start grafana-server
- 第四步: 查看一下grafana的服务: systemctl status grafana-server
- 第五步: web页面访问grafana服务:端口 默认3000,账号和密码默认是admin admin
- http://机器ip:3000 admin admin
2、influxdb:
介绍: influxDB是一个时序数据库,使用Go语言编写,无需外部依赖,适合构建大部分分布式监控系统。
特色:
- 基于时间序列,因为每条数据都跟时间关联,所以能很好的支持时间相关函数
- 可度量: 每条数据都是个数字,在每一个点都可以比对这些数据,是很明确定值,方便度量;
- 强大的类sql语法:类似于sql,语法有差异,做表查询 字段查询等可以通过类sql; 但是我们很少需要去查询influxdb的数据,大部分数据在写入前已经确定好了,数据结构也比较简单,基本会在grafana里查看就可以。
安装influxdb :
- 建议使用 独立机器, 不要在被测服务器上。可以grafana和influxdb放在同一个机器里。
- 安装influxdb1.x数据库
- 第一步:先把下载好的安装包-rpm包传到服务器上
- 第二步:在Linux服务器上在线安装: yum install -y influxdb-1.7.0.x86_64.rpm
- 第三步:启动数据库: influxd 或者 service influxdb start ,端口是8086
- 第四步: 查看服务启动情况: systemctl status influxdb
- 连接进入influxdb数据:
- 在终端输入 influx 进入了 influxdb,进入了命令行窗口,influxdb语法跟sql的语法基本上差不多:
- create database :建库
- show databases:查库
- drop databases:删库
- use dbname:选择库
- show measurements:查表
- create table :建表
- drop measurement:删表
- 在终端输入 influx 进入了 influxdb,进入了命令行窗口,influxdb语法跟sql的语法基本上差不多:
Jmeter与influxdb集成
安装好了工具之后,可以在Jmeter里实现跟influxdb的集成了。
- 1、Jmeter里添加后端监听器,选择 influxdb,以及做好数据库的信息配置,如下图所示:
- 2、然后就可以再Jmeter里通过图形界面 或者CLI运行脚本: 就会把数据写入到influxdb数据库里;
- 3、运行脚本后,在数据库里就会创建出来一张表: 并select查看里的数据可以看到存进去的数据: 数据跟jtl文件记录的数据基本上一样。
influxdb+grafana集成
influxdb里已经有数据了,我们现在需要把数据放在监控大屏grafana上进行展示。主要就是分为两步:添加数据源【influxdb数据库】+ 添加面板【grafana的模板】
- 第一步:浏览器访问这个grafana,http://服务区的IP:3000并登录进去;
- 第二步: 默认没有数据源,添加数据源: setting-->data source-->add data source--->搜索influxdb,并选择influxdb:
- 第三步:配置influxdb的ip和端口,并选择jmeter数据库:
- 第四步: manager【+】 > import--> 输入5496 load >选择db名字为刚刚添加的数据源【influxDB】--> import 即可:
- 第五步:运行Jmeter的脚本,就可以再Dashboard上看到实时刷新的数据了:
注意的问题:
1、jmeter写数据到 influxdb数据库中, Jmeter到influxdb 8086端口要通 【Jmeter通过后端监听器写入数据到influxdb数据库】
2、grafana到 influxdb的网络+ grafana到influxd 8086端口要通 【grafana需要去influxdb的数据库里拿数据显示】
3、grafana的机器要能访问 grafana.com网站。
欢迎来到testingpai.com!
注册 关于