(Ubuntu)Jmeter性能监控平台部署influxDB+Grafana
一:平台架构
1.1:前言
使用jmeter做性能压测、监控系统性能时,无论是使用插件还是index生成报告,都无法实现实时的监控数据;考虑搭建JMeter+Influxdb+Grafana可以实现实时监控,有利于实时分析数据进行高效调优。
1.2:工具介绍
- JMeter :压测工具,测试数据分析
- InfluxDB是Go语言编写的时间序列数据库,用于处理海量写入负载查询。涉及大量时间戳数据的任何用例(包括DevOps监控、应用程序指标等)。InfluxDB最大的特点在于可以按照时间序列面对海量数据的时候的高性能读写能力,非常适合在性能测试场景下用作数据存储。
- Grafana是一个跨平台的开源的度量分析和可视化工具,纯JavaScript开发的前端工具,通过访问库(InfluxDB),展示自定义报表、显示图表;用于将存储于InfluxDB 中的数据以图表的形式展示出来。大多时候用在时序数据的监控上。Grafana功能强大、UI灵活,并且提供了丰富的插件。
1.3:版本信息
Ubuntu
|
22.04.2
|
Influxdb
|
1.6.7
|
Grafana
|
8.3.3
|
Jmeter
|
5.5
|
|
|
1.4:验证版本
查看ubuntu版本:lsb_release -a
查看grafana版本:grafana-server -v
查看influxDB版本:influx -version
二:安装influxDB方式1
2.1:步骤一
2.2:步骤二
sudo dpkg -i influxdb_1.4.0_amd64.deb
2.3:步骤三
sudo apt install influxdb-client
2.3.1:遇到问题
dpkg: error processing archive /var/cache/apt/archives/influxdb-client_1.6.7~rc0-1ubuntu0.22.04.1_amd64.deb (--unpack):
trying to overwrite '/usr/bin/influx', which is also in package influxdb 1.4.0-1
dpkg-deb: error: paste subprocess was killed by signal (Broken pipe)
Errors were encountered while processing:
/var/cache/apt/archives/influxdb-client_1.6.7~rc0-1ubuntu0.22.04.1_amd64.deb
2.3.2:解决方法
- sudo dpkg -i --force-overwrite /var/cache/apt/archives/XXX.deb
- sudo apt-get -f install
- 本机路径(举例):
sudo dpkg -i --force-overwrite /var/cache/apt/archives/influxdb-client_1.6.7~rc0-1ubuntu0.22.04.1_amd64.deb
2.3.3:再次安装influxdb-client
重新输入命令:sudo apt install influxdb-client
2.4:步骤四
查看influxDB状态: sudo service influxdb status
启动influxDB:依次输入以下3条命令
- sudo service influxdb start
- influxd
- influx
2.5:步骤五
输入命令:show databases
- 如果已有jmeter库则显示如下图:
- 如果show databases后没有库,则输入以下命令创建jmeter库
create database jmeter
三:安装influxDB方式2
3.1:安装命令
前置条件:root权限进入/home/linda安装,后面的influx.conf需更改为此路径
sudo dpkg -i influxdb_1.2.4_amd64.deb
3.2:检查版本
influx -version
3.3:开机启动服务
sudo service influxdb start
3.4:启动influxDB
influxd
进入命令行:influx
3.5:选择数据库
查看数据库:show databases
创建数据库:create database testdb
删除数据库:drop database testdb
选择数据库:use testdb/use jmeter
退出:exit
输入命令:show measurements则出现如下图数据,若输入该命令无数据展示则后端监听器配置失败
3.6:修改配置文件
vim /etc/influxdb/influxdb.conf ## 打开配置环境
- [meta] 更改1处
dir = "/home/linda/influxdb/meta"
- [data] 更改2处
dir = "/home/linda/influxdb/data"
wal-dir = "/home/linda/influxdb/wal"
- [http] 更改2处
enabled = true
bind-address = ":8086"
修改并保存,esc键后输入:wq即可;
前置条件需要在root权限下,否则无权限修改
3.7:influxdb赋权限
- 新建文件夹influxdb:
mkdir -p /home/linda/influxdb/
- 给influxdb赋予权限:
chown -R influxdb:influxdb /home/linda/influxdb/
- 新建用户名密码,后面配置会用到:
create user "admin" with password 'admin' with all privileges
四:安装Grafana
4.1:安装命令
下载grafana官网:https://grafana.com/grafana/download?platform=linux
依次执行以下3个命令
- sudo apt-get install -y adduser libfontconfig1
- wget https://dl.grafana.com/enterprise/release/grafana-enterprise_8.3.3_amd64.deb
- sudo dpkg -i grafana-enterprise_8.3.3_amd64.deb
4.2:通过init.d启动服务
- 启动服务:
sudo service grafana-server start
- 验证服务是否已启动:
sudo service grafana-server status
- 验证grafana的版本
grafana-server -v
- 配置自动启动服务
sudo systemctl enable grafana-server.service
4.3:登录grafana页面
登陆地址:http://localhost:3000 (3000为grafana默认端口)
登录用户名密码:admin/admin
4.4:添加influxdb
Grafana左侧菜单栏选择设置--dataSource--add,选择influxdb进入编辑页面
填写url和database,保存即可
4.5:配置influxURL和database
- http://172.22.223.35为本机Ubuntu的ip,8086为influx的默认端口号
- database填写jmeter
- 点击save&test,出现Data source is working则配置成功
- 查看ubuntu的ip方式:进入终端输入 ip address show
4.6:导入模板
4.7:监控主页
五:jmeter后端监听器
5.1:端口说明
2003端口:Jmeter往数据库发数据的端口,服务器端也是该端口接收数据,所以如果使用云服务器ECS的话,需要开启该2003端口 8086端口,Grafana从数据库取数据的端口
5.2:创建后端监听器
- cmd进入终端输入jmeter,打开jmeter图形化界面
- 新建测试计划-添加监听器-后端监听器,用于收集数据并发送给influxdb
- 前置条件: jmeter5.0 以上版本,低于该版本需要单独装插件
5.3:配置后端监听器
下拉框选择BackendListener,修改influxdbURL,如果是ubuntu安装则输入ubuntu的ip即可
5.4:运行jmeter请求
新建线程组和http请求如下图,点击运行
5.5:grafana查看监控
监控数据与jmeter实时一致,
可实时监测数据,
也可分时间段查看历史数据并做数据分析对比
5.6:influxdb实时存入压测数据
- use jmeter 切换到jmeter库,运行jmeter脚本,
- 查看influxdb库命令:select * from jmeter,查询结果如下:
六:总结
Jmeter做并发压力测试,执行出来的报告粗糙简陋,针对长时间的压力疲劳测试很难实时察看执行过程中的数据情况,搭建可视化页面,监控实时数据,可以储存和对比测试结果;高效便捷!