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

相关推荐
Benszen18 分钟前
Docker容器化技术实战指南
运维·docker·容器
ZzzZZzzzZZZzzzz…22 分钟前
Nginx 平滑升级:从 1.26.3 到 1.28.0,用户无感知
linux·运维·nginx·平滑升级·nginx1.26.3·nginx1.28.0
Hommy881 小时前
【开源剪映小助手】Docker 部署
docker·容器·开源·github·aigc
一叶知秋yyds2 小时前
Ubuntu 虚拟机安装 OpenClaw 完整流程
linux·运维·ubuntu·openclaw
斯普信云原生组2 小时前
Prometheus 环境监控虚机 Redis 方案(生产实操版)
运维·docker·容器
喵了几个咪3 小时前
如何在 Superset Docker 容器中安装 MySQL 驱动
mysql·docker·容器·superset
工具罗某人3 小时前
docker compose部署kafka集群搭建
docker·容器·kafka
夜晚打字声3 小时前
9(九)Jmeter如何连接数据库
数据库·jmeter·oracle
safestar20123 小时前
ES批量写入性能调优:BulkProcessor 参数详解与实战案例
java·大数据·运维·jenkins
来一颗砂糖橘4 小时前
负载均衡的多维深度解析
运维·负载均衡