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