前言:
因为近期项目涉及到一些性能测试监控平台相关的想法
Grafana+Influxdb+Jmeter
Grafana+Prometheus+Jmeter 等等
抽周末时间来尝试搭建下Grafana+Influxdb+Jmeter
主要介绍使用docker-compose.yml文件的方式进行安装,简洁明了,不用逐个去安装服务。
连接aliyun服务器实例
首先得有一台Linux服务器(虚拟机或者云服务器),该文以aliyun服务器为基础,CentOS 8.0
如果是云服务器,记得配置需要用到的端口,3000,8086,8083,8090等,设置安全组--> 配置规则里面:
![ebb7152e6732f1aaf62c6224ef41013f.png](https://img-blog.csdnimg.cn/img_convert/ebb7152e6732f1aaf62c6224ef41013f.png)
![7f20e3867115944e22b8194ca4d81baa.png](https://img-blog.csdnimg.cn/img_convert/7f20e3867115944e22b8194ca4d81baa.png)
Aliyun实例安装Docker:
Linux:Centos 8.0
更新软件
sudo yum update
卸载旧版本 (如果安装过旧版本的话)
sudo yum remove docker docker-common docker-selinux docker-engine
安装需要的软件包, yum-util 提供yum-config-manager功能,另外两个是devicemapper驱动依赖的
sudo yum install -y yum-utils device-mapper-persistent-data lvm2
设置yum源
sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo (这个是官方源,很慢)
sudo yum-config-manager --add-repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo (阿里的源,较快)
可以查看所有仓库中所有docker版本,并选择特定版本安装
yum list docker-ce --showduplicates | sort -r
![2bb8ab794ffc7a7129892226f49f4d37.png](https://img-blog.csdnimg.cn/img_convert/2bb8ab794ffc7a7129892226f49f4d37.png)
安装docker
sudo yum install docker-ce #由于repo中默认只开启stable仓库,故这里安装的是最新稳定版17.12.0
sudo yum install # 例如:sudo yum install docker-ce-18.03.1.ce-1.el7.centos
坑:注意阿里云的el7是EL7,切勿看错成数字1
将root添加到docker组,以便您能够执行Docker命令,而无需使用sudo,安装完成之后需要重启ssh session。
1sudo usermod -a -G docker root
启动Docker
1sudo systemctl start docker #
2(sudo systemctl enable docker) #开机启动
3sudo docker --version #查看Docker版本
安装Compose,运行compose.yml
pip3 install docker-compose
docker-compose.yml如下:
1version: '3.1'
2
3services:
4 influxdb:
5 image: influxdb:latest
6 container_name: influxdb
7 ports:
8 - "8083:8083"
9 - "8086:8086"
10 - "8090:8090"
11 environment:
12 - INFLUXDB_DB=db0
13 - INFLUXDB_ADMIN_USER=${INFLUXDB_USERNAME}
14 - INFLUXDB_ADMIN_PASSWORD=${INFLUXDB_PASSWORD}
15 volumes:
16 - influxdb-storage:/var/lib/influxdb
17
18 grafana:
19 image: grafana/grafana:latest
20 container_name: grafana
21 ports:
22 - "3000:3000"
23 environment:
24 - GF_SECURITY_ADMIN_USER=${GRAFANA_USERNAME}
25 - GF_SECURITY_ADMIN_PASSWORD=${GRAFANA_PASSWORD}
26 depends_on:
27 - influxdb
28 user: "0"
29 volumes:
30 - grafana-storage:/var/lib/grafana
31 - ./grafana-provisioning/:/etc/grafana/provisioning
32volumes:
33 influxdb-storage:
34 chronograf-storage:
35 grafana-storage:
设置环境文件.env, 主要是设置用户名和密码
1INFLUXDB_USERNAME=admin
2INFLUXDB_PASSWORD=admin
3
4GRAFANA_USERNAME=admin
5GRAFANA_PASSWORD=admin
运行docker-compose,安装influxdb和grafana,安装完成之后如下图:
1docker-compose up -d
![1ee894f911d7b8930cdec045bcb5f17b.png](https://img-blog.csdnimg.cn/img_convert/1ee894f911d7b8930cdec045bcb5f17b.png)
http://IP:3000
初始密码为:admin/admin
首次登陆grafana会要求设置新密码
![99991fc3ca07874906126a0c1a37f276.png](https://img-blog.csdnimg.cn/img_convert/99991fc3ca07874906126a0c1a37f276.png)
登陆到grafana主页之后,创建新的Data Source:
![367c11d03e660281561dc5a6e61dfecb.png](https://img-blog.csdnimg.cn/img_convert/367c11d03e660281561dc5a6e61dfecb.png)
配置Database,选择InfluxDB:
![3a1e754d788b2e4a991c10fd84bf70cf.png](https://img-blog.csdnimg.cn/img_convert/3a1e754d788b2e4a991c10fd84bf70cf.png)
填入你的IP地址http://*.*.*.*:8086
![bbf3fb3f29743ed72eb616455435cb5d.png](https://img-blog.csdnimg.cn/img_convert/bbf3fb3f29743ed72eb616455435cb5d.png)
输入InfluxDB信息,如果没做更改的话user和pwd都是默认的root, 为了安全自行修改。
![a5292a66f7c82bd79937beae047cbada.png](https://img-blog.csdnimg.cn/img_convert/a5292a66f7c82bd79937beae047cbada.png)
![74c7269ebd07d8f6c02408909ad8cc36.png](https://img-blog.csdnimg.cn/img_convert/74c7269ebd07d8f6c02408909ad8cc36.png)
Dashboards导入Jmeter模板
到Dashboards去下载:https://grafana.com/grafana/dashboards
![e894090dfb68fdca7ab39bbfa44a0a6a.png](https://img-blog.csdnimg.cn/img_convert/e894090dfb68fdca7ab39bbfa44a0a6a.png)
或者直接访问:https://grafana.com/grafana/dashboards/5496
复制该模板的ID 或者URL
![16b6ed88b7fe97162d1592258ea8895c.png](https://img-blog.csdnimg.cn/img_convert/16b6ed88b7fe97162d1592258ea8895c.png)
到我们登陆的Grafana主页去粘贴即可,如下图
![8340f8292f005848d4419ca96ade5fb5.png](https://img-blog.csdnimg.cn/img_convert/8340f8292f005848d4419ca96ade5fb5.png)
然后可以进行命名,填入之前建好的DataSource 名字,设置发送时间,保存即可。
![0543bfc9ee7bdef06469d33c6d16f2a5.png](https://img-blog.csdnimg.cn/img_convert/0543bfc9ee7bdef06469d33c6d16f2a5.png)
然后转到刚刚建好的主页,如下图,右上角可以设置:
![d9bb350d0d863badb54a5c7dfcf0a9e7.png](https://img-blog.csdnimg.cn/img_convert/d9bb350d0d863badb54a5c7dfcf0a9e7.png)
设置界面,可更具你的需要进行设置,比如下面两个点分别是设置时间显示和刷新频率。
![f06255fab094af7054ef412ef967982e.png](https://img-blog.csdnimg.cn/img_convert/f06255fab094af7054ef412ef967982e.png)
接下来就准备运行Jmeter ,生成数据,看看效果。
挑选了一个URL,对其进行简单的运行并返回数据。
https://mp.weixin.qq.com/s/pzsE326aPk-4iPhfBC52sQ
![0f716df341abf5f7461995b5d94648ad.png](https://img-blog.csdnimg.cn/img_convert/0f716df341abf5f7461995b5d94648ad.png)
![50e0881296e56416c9b9e71084564769.png](https://img-blog.csdnimg.cn/img_convert/50e0881296e56416c9b9e71084564769.png)
![e5d0b41a71e41c70417e17dce951b9ab.png](https://img-blog.csdnimg.cn/img_convert/e5d0b41a71e41c70417e17dce951b9ab.png)
其结果如下:
![e057013dede832f957dc0157d62571d9.png](https://img-blog.csdnimg.cn/img_convert/e057013dede832f957dc0157d62571d9.png)
另外再介绍一种方式就是使用docker-compose.yml的方式安装,而是一步步通过Docker安装的方式如下:
通过Docker images安装
安装influxdb
搜索influx:docker search influx
拉取influxdb镜像:docker pull influxdb
查看镜像Images:docker images
运行influxdb容器:docker run --name my_influxdbName -p 8086:8086 influxdb
查看运行的容器Container:docker ps -a
进入容器:docker exec -it 容器ID /bin/bash
创建数据库jmeterDB:create database jmeterDB
influxdb容器运行成功后,通过Web浏览器访问http://docker-host-ip:8083访问influxdb后台管理,并登录后台管理系统(默认用户名:root, 默认密码:root)
安装grafana
搜索grafana:docker search grafana
拉取grafana镜像:docker pull grafana/grafana
运行容器:docker run --name my_grafana -p 3000:3000 grafana/grafana
然后查看状态
docker ps -a 查看当前运行的实例
退出来再次启动即可
docker start ContainerID
接下来就是使用http://IPAddress:3000去登陆grafana并进行配置了
步骤如上文docker-compose的方式。
Prometheus
需要在Jmeter下装一个插件,用于监听。
https://search.maven.org/remotecontent?filepath=com/github/johrstrom/jmeter-prometheus-plugin/0.6.0/jmeter-prometheus-plugin-0.6.0.jar
下载jmeter-prometheus-plugin-0.6.0.jar之后放到Jmeter/lib/ext下,重启Jmeter即可。
![8a50ce4d108b47c9ed315478e8680e6b.png](https://img-blog.csdnimg.cn/img_convert/8a50ce4d108b47c9ed315478e8680e6b.png)
![cb58246e6670ba4285dc88f64e0ea8ca.png](https://img-blog.csdnimg.cn/img_convert/cb58246e6670ba4285dc88f64e0ea8ca.png)
![bf0372c5cfe62dd6e0767a47f95b0f86.png](https://img-blog.csdnimg.cn/img_convert/bf0372c5cfe62dd6e0767a47f95b0f86.png)
更多设置参考这篇文章:https://qainsights.com/jmeter-prometheus-and-grafana-integration/
![47e5d2aab2dabfeb09cde9fb2bcaf9df.png](https://img-blog.csdnimg.cn/img_convert/47e5d2aab2dabfeb09cde9fb2bcaf9df.png)
![2da8510c7942a6c47c41ed273a9fc55a.png](https://img-blog.csdnimg.cn/img_convert/2da8510c7942a6c47c41ed273a9fc55a.png)
总结:
性能大佬说:
其实,很多测试朋友喜欢这个监控,是因为炫酷,可以在领导面前装逼,出个很炫的报告,
我觉得真正性能监控分析,用这个没啥卵用,至少我不会用,so,模板配置,感兴趣的自己研究下,之所以写这篇,也是总结下大家的疑问;当然,如果你出去面试,可以把这个拿出去吹一下,毕竟工作不好找。
搭建其实也很简单,一个配置文件就搞定,但是想要更好地应用到实践中的话需要对Grafana Dashboard做更多的优化和设置。
另外Grafana+Prometheus+Jmeter这种方式不过就是换一个DataBase,将InfluxDB换成Prometheus,理念大体一样,很细微的差别。
但是这个Grafana+Prometheus/influxDB模式可以用到其他地方的监控,也是个不错的选择。
往期Jmeter精彩推文:
JMeter分布式压测环境搭建
测试必备:jmeter测试http协议接口的各种传参方式如何使用AWS+EC2+Docker+JMeter构建分布式负载测试基础架构性能测试自动化框架——Jenkins+Ant+JmeterJmeter 参数化的多种方式JMeter功能不够用?看我的Jmeter响应内容显示乱码问题的解决办法
送书活动:
留言+分享赠书免费赠送技术类图书,无套路,纯免费!
《Python网络爬虫开发从入门到精通》(活动码002)点击下方小程序查看图书内容详情
恭喜文章 致Zoom用户的一封信 送书活动中的
@睡个好觉
同学获得赠书
《Python自动化测试实战》
文章合集
Selenium | Appium | Jenkins | Jmeter
软件测试方法汇总 | Postman接口参数化 | 测试用例设计
视频教程
Selenium | Appium | Jenkins | Jmeter
AWS与Docker
如何使用AWS EC2+Docker+JMeter构建分布式负载测试基础架构Docker容器数据持久化和容器网桥连接Docker删除image和containerDocker与VM虚拟机的区别以及Docker的特点
END
觉得不错,可以点“在看”,或者转发、留言
精彩的内容要和朋友分享哦