用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。