3种方式:JMeter+Grafana+Influxdb搭建可视化性能测试监控平台


用jmeter的朋友越来越多了,毕竟开源、免费、轻量,而且功能、自动化、性能,都能做,

最近不少朋友问JMeter+Grafana+Influxdb可视化性能测试监控平台搭建的问题,虽然网上资料不少,但是有些是错的;

so,抽时间总结了常用的3种搭建方式,供大家参考;

方式一:运行自定义镜像

方式二:docker方式安装

方式三:rpm包方式安装

建议通过云服务器来练习:https://www.cnblogs.com/uncleyong/p/12694334.html

方式一:运行自定义镜像

镜像方式可以快速部署到不同的环境上搭建可视化性能测试监控平台,我们也可以自定义镜像,参考:https://www.cnblogs.com/uncleyong/p/8894133.html

我已经自定义好了镜像,大家直接pull下来,按如下方式操作即可;如果打镜像或者运行过程中有问题,欢迎进Q群交流;

下面我简单介绍下pull下来如何使用。

 

拉取:docker pull registry.cn-hangzhou.aliyuncs.com/qzcsbj/qzcsbj-influxdb_grafana:v1.0

 

运行容器:docker run -tid --name qzcsbj-influxdb_grafana -p 4000:3000  -p 9086:8086 --privileged=true 9756039ba6b4 /sbin/init

 

 

已经创建了数据库jemter,如果你要重新创建,进入容器:docker exec -it qzcsbj-influxdb_grafana /bin/bash

influx
show databases;
create database jmeter;
show databases;
use xxx;
exit;

访问grafana:http://ip:4000,登录:admin/admin

 

 跳过

 

 

 

 

添加数据源

 

 

 

 

选择数据源为InfluxDB

 

 

配置

 

配置数据写库的频率

 

 测试数据源是否ok

 

 成功

 

 可以修改数据源

 

 

下载模板

https://grafana.com/grafana/dashboards

搜索

 

 

或者直接访问:https://grafana.com/grafana/dashboards?dataSource=influxdb&direction=asc&orderBy=name&search=jmeter

 

 

导入json模板:

 

 

 

 

 

 

修改为下面配置,然后点击“Import”

 

 

 

 

  

 

 

 

 

 修改模板

 

 

可以删除

 

 下面展示的不是我们设置的值,是定义描述

 

 

so,如果要修改,建议删除后,重新导入模板,修改参数值

jmeter压测效果展示

jmeter脚本

 

效果图:

 

 

示例配置2:

summaryOnly:线程组有多个请求,展示明细,值改为false 

 

 

 

transaction勾选HTTP请求1

 

 

 

因为上面transaction勾选的HTTP请求1

 

 

 

模板还很多配置,感兴趣的可以深入研究下。 

 

方式二:docker方式安装

和方式一类似,只是你需要自己拉取多个镜像

建议通过云服务器来练习:https://www.cnblogs.com/uncleyong/p/12694334.html

前提:

  安装docker,参考:https://www.cnblogs.com/uncleyong/p/8894133.html

安装influxdb

搜索influx:docker search influx

拉取influxdb镜像:docker pull influxdb

运行influxdb容器:docker run --name my_influxdb -p 8086:8086 influxdb

进入容器:docker exec -it 容器id /bin/bash

创建数据库jmeter

influx
show databases;
create database jmeter;
show databases;
use jmeter;
select * from jmeter;
exit;

  

 

 

安装grafana

搜索grafana:docker search grafana

拉取grafana镜像:docker pull grafana/grafana

运行容器:docker run --name my_grafana -p 3000:3000 grafana/grafana

 

配置

(请参考方式一的截图)

访问grafana:http://ip:3000 

登录:admin/admin 

添加、配置、测试数据源

下载模板:https://grafana.com/grafana/dashboards?dataSource=influxdb&direction=asc&orderBy=name&search=jmeter

导入json模板

jmeter压测效果展示

(请参考方式一的截图)

jmeter脚本

效果图

 

方式三:rpm包方式安装

influxdb下载、安装、配置、启动

InfluxDB是一个当下比较流行的时序数据库,InfluxDB使用 Go 语言编写,无需外部依赖,安装配置非常方便,适合构建大型分布式系统的监控系统。

下载:wget https://dl.influxdata.com/influxdb/releases/influxdb-1.7.1.x86_64.rpm 

安装:yum localinstall influxdb-1.7.1.x86_64.rpm

配置:vim /etc/influxdb/influxdb.conf,搜索:graphite

/graphite

改为:

2003是jmeter往数据库发数据的端口

注意,后端监听器要用下面这个,才配置上面

 

 

启动:systemctl start influxdb

查看状态:systemctl status influxdb.service

 

查看服务,默认启动了三个端口,分别是:8088,2003,8086 

 

其中,我们要用到的8086是Grafana从数据库获取数据的端口

下面也可以配置数据库认证

 

 

命令行方式进入数据库

 

创建数据库jmeter

 

再创建一个jmeter2

 

查看创建的数据库

 

查询数据

 

 

创建jmeter脚本

 

 

 

  

influxdbUrl :http://ip:8086/write?db=jmeter

ip写安装influxdb服务的ip地址+端口

db指定数据库jmeter

application名称自定义,后面grafana会用到

jmeter中添加请求运行, 执行的数据就会记录到influxDB

 

下面脚本运行一次

 

 

 

 

有数据就说明jmeter入库成功。 

 

Grafana下载、安装、配置

下载:官网https://grafana.com/,或者用命令下载:wget https://s3-us-west-2.amazonaws.com/grafana-releases/release/grafana-4.6.3-1.x86_64.rpm

安装:yum localinstall grafana-4.6.3-1.x86_64.rpm

配置:vim /etc/grafana/grafana.ini

端口默认是3000

 

启动:systemctl start grafana-server,或者systemctl start grafana-server.service

查看状态:systemctl status grafana-server,或者systemctl status grafana-server.service

 

浏览器访问Grafana首页:ip:3000,账号/密码默认是admin/admin

 

创建用户

 

 

输入用户名、邮箱、登录名、登录密码

 

 

如果这个账号登录,test/test,下面展示用户名

 

再创建一个用户:qzcsbj2

账号密码:test2/test2

 

 

配置数据源 

 

 

 

创建用户qzcsbj的数据源,名称就用用户名,对应的数据库是jmeter

 

 

创建用户qzcsbj2的数据源,名称就用用户名,对应的数据库是jmeter2

 

 

为qzcsbj用户添加模板

导入模板

 

下载模板:https://grafana.com/grafana/dashboards?dataSource=influxdb

https://grafana.com/grafana/dashboards?dataSource=influxdb&search=jmeter

 

复制id5496

 

 

填写模板id:5496,然后点击“Load”

 

 

选择数据源

 

可以看到我们创建的两个数据源

 

选择第一个数据源,另外,下面间隔时间可以改为1s

 

 

 

但是,并没有显示模板(暂时怀疑是版本问题)

 

 

不要的可以删除

 

 

4026

 

 

 

 

为qzcsbj2用户添加模板

jmeter2为数据库

 

 

用户qzcsbj的脚本,5u5min

 

 

 

用户qzcsbj2的脚本,3u5min

 

下面jmeter2不是数据,是添加模板的measurement名称,需要匹配

 

先把数据库jmeter和jmeter2的数据清了,然后上面两份脚本分别发一笔请求 

下面jmeter是measurement名称

 

下面jmeter2是measurement名称

 

第一份脚本场景是:5u5min

第一份脚本场景是:3u5min

运行完成后,

用户qzcsbj看到的

 

聚合报告845笔,加上最刚刚发的1笔,总共就是846

 

 

用户qzcsbj2看到的

 

聚合报告509笔,加上最刚刚发的1笔,总共就是510

 

自定义

 

 

 

点击【Graph】

 

点击【Edit】

 

修改名称

 

选择数据库

 

 

 

 

 

 

总结

其实,很多测试朋友喜欢这个监控,是因为炫酷,可以在领导面前装逼,出个很炫的报告,

我觉得真正性能监控分析,用这个没啥卵用(个人观点,只能做一个全局的监控,看到的都是表象,其实,我用命令也都能看到这些指标,最终都是需要定向监控分析,找出问题),

总之我不喜欢用,喜欢原生的命令监控,so,模板配置,感兴趣的自己研究下,之所以写这篇,也是总结下大家的疑问,

当然,如果你出去面试,可以把这个拿出去吹一下,毕竟工作不好找。

 

有朋友问我用的什么监控?

根据项目技术架构,如果是微服务,公司有类似skywalking的链路级监控平台;非微服务,我个人喜欢用命令或者写shell;

还是那句话:没有绝对的好与不好,做性能,能发现性能瓶颈就好,能保证稳定运行就ok。


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM