应用Docker快速实现 JMeter + InfluxDB + Grafana 监控方案

Docker 是一个基于 Go 语言 并遵从 Apache2.0 协议开源的应用容器引擎,其能够让开发人员打包他们的开发的应用以及依赖包到一个轻量级、可移植的容器中,然后再发布到测试和线上环境,当然也可以实现虚拟化。容器是完全使用沙箱机制,可应用于自动化测试、持续集成和产品发布等场景。您可以使用Docker提供的较少命令或脚本快速部署应用系统。如今Docker正如火如荼的被很公司所采用,成为容器化产品开发、测试和产品部署的利器。

鉴于Docker在开发和测试方面的广泛应用,这里笔者也针对Docker来讲一下如何快速的实现基于Docker的JMeter + InfluxDB + Grafana 监控方案。

这里笔者先介绍一下环境,这里笔者有一台Windows10的宿主机,在该机器上有一个Vmware CentOS 7的虚拟机(IP地址:192.168.176.129),在该虚拟机上已经安装了Docker。

下面笔者就向大家详细介绍,如何应用Docker快速实现 JMeter + InfluxDB + Grafana 监控方案。

  • InfluxDB配置过程

首先,下载InfluxDB和Grafana的镜像文件,下载过程笔者不再赘述,下载后的镜像参见图10-29所示。

图10-29

如图10-29所示,这里我们使用InfluxDB早期的版本,因为早期的版本有一个Web端管理界面可以方便建库或者查询数据。接下来,创建一个名称为myinfluxdb的容器,并挂在数据卷,暴露8086和8083端口。

使用如下docker 命令:

docker run -di --name myinfluxdb -v /var/lib/influxdb:/var/lib/influxdb -p 8083:8083 -p 8086:8086 tutum/influxdb

图10-30

如图10-30所示,可以看到myinfluxdb容器成功创建。

接下来,您可以通过访问http://192.168.176.129:8083地址来创建一个InfluxDB数据库,这里笔者创建名称为jmeterdb的数据库。

图10-31

如图10-31所示,在文本框输入CREATE DATABASE "jmeterdb"回车后,则可以创建一个名称为jmeterdb的数据库。

图10-32

如图10-32所示,在文本框输入SHOW DATABASES回车后,则可以看到jmeterdb数据库相关信息。

  • Grafana配置过程

创建一个名称为mygrafana的容器,并暴露3000端口。

使用如下docker 命令:

docker run -di --name mygrafana -p 3000:3000 grafana/grafana

图10-33

如图10-33所示,可以看到mygrafana容器成功创建。

在宿主机打开浏览器,输入http://192.168.176.129:3000,则可以访问Grafana登录页,如图10-34所示。

图10-34

具体的配置过程同上一小节"安装并配置Grafana"部分类似,故不再赘述。

在这里需要大家注意的有2个地方,参见图10-35和图10-36所示。

图10-35

如图10-35所示,在添加数据源设置时,URL配置项可以指定CentOS虚拟机的地址,完整输入内容为http://192.168.176.129:8086

图10-36

如图10-36所示,在数据库时一定要输入刚才我们创建的jmeterdb,而不是jmeter,而后保存并测试是否可以配置成功。

导入ID为5496的Dashboard模版,如图10-37所示。

图10-37

  • JMeter配置过程

这里笔者仍以访问搜搜首页(www.soso.com)的脚本为例进行配置讲解,如图10-38所示。

图10-38

修改Backend Listener元件的相关配置信息,如图10-39所示。这里笔者主要修改了2项内容,即:influxdbUrl和application,influxdbUrl的值为http://192.168.176.129:8086/

write?db=jmeterdb,application的值为dockertest。

图10-39

再次执行访问搜搜首页的测试场景,如图10-40所示。

图10-40

待该测试计划场景执行完成后,访问Grafana展示的JMeter执行的结果信息,如图10-41所示。对比图10-28,大家不难发现这次的执行结果和上节的执行结果完全一致。

图10-41

相关推荐
夏天是冰红茶12 分钟前
使用Docker将PyQt深度学习项目打包成镜像
运维·docker·容器
落日漫游37 分钟前
InnoDB:MySQL高性能事务引擎详解
运维·sql
龙门吹雪41 分钟前
Docker 安装 canal 详细步骤
运维·docker·容器·canal·mysql binlog 日志·增量数据订阅消费
椒盐螺丝钉41 分钟前
TypeScript类型兼容性
运维·前端·typescript
老黄编程1 小时前
ubuntu如何查看一个内核模块被什么模块依赖(内核模块信息常用命令)?
linux·运维·ubuntu
Freed&2 小时前
Ansible 生产级自动化指南:Playbook、Handlers、Jinja2 全解析
运维·自动化·ansible
b***25112 小时前
储能电池包的自动化产线探秘|深圳比斯特自动化
运维·自动化
ZeroNews内网穿透2 小时前
新版发布!“零讯”微信小程序版本更新
运维·服务器·网络·python·安全·微信小程序·小程序
工控小楠2 小时前
涡街流量计温度数据的协议桥梁:Modbus RTU 转 Profinet 网关的自动化应用
运维·自动化
<但凡.2 小时前
Linux 修炼:进程控制(一)
linux·运维·服务器·bash