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

相关推荐
x县豆瓣酱3 小时前
【第五节】部署http接口到ubuntu server上的docker内
ubuntu·http·docker
豆是浪个3 小时前
Linux(Centos 7.6)命令详解:usermod
linux·运维·centos
Continue_with6 小时前
docker设置代理
运维·docker·容器
彭泽布衣7 小时前
远程登录docker执行shell报错input is not a terminal问题
运维·docker·容器
霖007 小时前
FPGA通信设计十问
运维·人工智能·经验分享·vscode·fpga开发·编辑器
NUZGNAW7 小时前
VMware安装Centos 7
linux·运维·centos
炫爱小七7 小时前
包稳定的Docker 安装方式(CentOS)
docker·容器·centos
筑梦之路7 小时前
linux 系统找出磁盘IO占用元凶 —— 筑梦之路
linux·运维·服务器
青春不流名7 小时前
skywalking镜像应用springboot的例子
docker
搂……住8 小时前
shiro550反序列化漏洞复现(附带docker源)
安全·docker·容器