Jmeter监控平台搭建:JMeter+InfluxDB+Grafana
2022-04-17 15:53 第二个卿老师 阅读(810) 评论(0) 编辑 收藏 举报背景
平时一般用Jmeter的Gui模式,添加对应的插件,查看每秒线程数、TPS、响应时间等曲线,其实高并发是不建议这么看的。
解决方案
可以搭配InfluxDB+Grafana工具,使Jmeter异步发送数据到InfluxDB,然后由Grafana查询并展示出来,方便查看与比对。
之前使用Docker方式搭建过这个监控平台,这里记录下。
安装Docker
网上安装Docker的方式很多,我之前也写过一篇Centos7下安装Docker可以参考,本次是CentOS8.2安装(华为云 root账户)。
安装所需软件包:
yum install -y yum-utils device-mapper-persistent-data lvm2
发现报错了,原来是镜像链接不对,官方描述该版本停止更新相应依赖了
于是换源:参考链接,重新执行命令
添加阿里云镜像:
yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
直接安装最新版本:
yum install docker-ce
安装完成后,输入systemctl start docker命令启动docker。
安装InfluxDB
InfluxDB是一个时间序列数据库,旨在处理高写入和查询负载。用作涉及大量带时间戳数据的任何用例的后备存储,包括DevOps监控,应用程序指标,物联网传感器数据和实时分析。
使用docker命令拉取容器镜像(由于2.x版本与1.x版本语法不一样,这里安装1.8版本的):
docker pull influxdb:1.8
运行容器(这里如果不用镜像id会默认拉取influxdb的最新版本):
docker run --name my_influxdb -p 8086:8086 镜像id
为了保存jmeter的发送的数据,需要先建一个数据库,进入容器(docker ps查看容器id)
docker exec -it 容器id /bin/bash
输入influx进入数据库交互命令行,创建一个jmeter的数据库。
influx show databases; create database jmeter; show databases; use jmeter; select * from jmeter; exit;
安装Grafana
Grafana是一个跨平台的开源的度量分析和可视化工具,可以通过将采集的数据查询然后可视化的展示,并及时通知,有着精美的可视化图表模板。
使用docker命令拉取容器镜像:
docker pull grafana/grafana
运行容器:
docker run --name my_grafana -p 3000:3000 grafana/grafana
输入IP:3000就可以访问grafana了, 默认用户名:admin,密码admin。(本地访问华为云,需要在云服务器控制台—安全组,找到对应的安全组开放出入端口)
Grafana配置数据源
登录grafana,在界面中找到配置中心
接着添加数据源
选择influxDB
配置数据源的名称,远程URL为上面influxdb的ip:8086,database为jmeter(由于在docker运行,地址不能填localhost或者127.0.0.1,可以填本机IP地址或者docker分配地址)
点击save&test按钮,会自动连接保存,出现下面弹窗就ok了
数据源添加好后,接着导入图表展示模板,可以官方下载导入json文件方式,也可以直接输入模板id导入,这里选择后面一种。
直接填写模板id5496,点击load
修改模板名称,匹配数据源,点击import就ok了
如下所示:
Jmeter配置
Jmeter的安装就省略了,这里说下插件配置,添加后端监听器:
后端监听器配置如下,其他配置不用动:
调试对比数据
添加一个简单jmeter脚本,运行5分钟
查看聚合报告
查看grafana图表,选择最近15分钟的数据,和上面的报告数据也能对得上。
注:如果性能场景存在多个事务,summaryOnly字段选择false,可以统计各事务的情况,为true的话就只生成总的事务。