当前位置: 首页 > news >正文

Jmeter压测监控体系搭建Docker+Influxdb+Grafana

章节目录:

    • 一、背景介绍
      • 1.1 概述
      • 1.2 拓扑图
    • 二、云服务器设置
    • 三、Docker
      • 3.1 概述
      • 3.2 搭建流程
      • 3.3 安装验证
      • 3.4 配置docker镜像加速
      • 3.5 取消sudo运行(可选操作)
    • 四、InfluxDB
      • 4.1 镜像拉取
      • 4.2 运行数据库
      • 4.3 创建存储 jmeter 数据的库
    • 五、Grafana
      • 5.1 镜像拉取
      • 5.2 关联 influxdb
      • 5.3 进入控制台
      • 5.4 数据源配置
      • 5.5 控制板配置
    • 六、Jmeter
    • 七、大屏监控展示
    • 八、数据库查看
    • 九、结束语

一、背景介绍

我们都知道 Jmeter 提供了原生的结果查看,既然有原生的查看结果,为什么还要多此一举使用其他工具进行查看呢?

1.1 概述

  • 除了查看内容丰富外还有最主要的原因:

    • Jmeter 提供的查看结果插件本身是比较消耗性能的,所以在正式压测中应当禁用。

    • 结果只能自己看,无法实时共享

    • 报告信息的展示比较简陋单一不直观

  • 提示:此次使用个人的阿里云服务器,搭建了该体系,后面只需要单独配置 Jmeter 的 Backend Listener 元件就可以做到任意项目随时随地监控,一定程度上提升了复用性

1.2 拓扑图

二、云服务器设置

  • 端口开放

三、Docker

3.1 概述

简介Docker 是一个开源的应用容器引擎,基于 Go 语言 并遵从 Apache2.0 协议开源。Docker 可以让开发者打包他们的应用以及依赖包到一个轻量级可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化。容器是完全使用沙箱机制,相互之间不会有任何接口,更重要的是容器性能开销极低

  • 三大优点
    • 搭建测试环境,保证测试环境的一致,避免因环境原因造成的互相甩锅。
    • 搭建各类基础服务,例如禅道,Jenkins 等,极大降低学习成本
    • 搭建测试执行环境,例如我们运行自动化测试的环境,随用随建,不用即扔。

3.2 搭建流程

# 1.旧版本卸载。
$ sudo yum remove docker \docker-client \docker-client-latest \docker-common \docker-latest \docker-latest-logrotate \docker-logrotate \docker-engine# 2.使用存储库安装。
$ sudo yum install -y yum-utils
$ sudo yum-config-manager \--add-repo \https://download.docker.com/linux/centos/docker-ce.repo# 3.安装docker引擎。
$ sudo yum install docker-ce docker-ce-cli containerd.io# 4.启动docker。
$ sudo systemctl start docker# 5.使用开机自启。
$ sudo systemctl enable docker

3.3 安装验证

# 1.查看docker版本号。
$ docker version

3.4 配置docker镜像加速

# 1.创建目录。
$ sudo mkdir -p /etc/docker# 2.配置阿里云镜像。
$ sudo tee /etc/docker/daemon.json <<-'EOF'{"registry-mirrors": ["https://2jakrmvh.mirror.aliyuncs.com"]}EOF# 3.重新加载配置。
$ sudo systemctl daemon-reload# 4.重启docker。
$ sudo systemctl restart docker

3.5 取消sudo运行(可选操作)

# 1.root为当前用户的名字 或 $USER
$ sudo usermod -aG docker root 

四、InfluxDB

简介InfluxDB是一个开源分布式的时序、事件和指标数据库。使用 Go 语言编写,无需外部依赖。其设计目标是实现分布式和水平伸缩扩展。

  • 三大特性

    • Time Series(时间序列):你可以使用与时间有关的相关函数。(如最大,最小,求和等)

    • Metrics(度量):可以实时对大量数据进行计算。

    • Eevents(事件):它支持任意的事件数据。

4.1 镜像拉取

$ docker pull influxdb:1.7.10

4.2 运行数据库

  • 启动镜像
# 1.创建 influxdb 镜像。
$ docker run -d --name=influxdb -p 8086:8086 -v ${PWD}:/var/lib/influxdb influxdb:1.7.10# 2.进程查看。
$ docker ps# 3.镜像启动。(未启动进程时,使用该命令)
$ sudo docker start influxdb
  • docker run 参数说明
# 1.docker run 参数格式:docker run [OPTIONS] IMAGE [COMMOND] [ARGS...]# 2. OPTIONS 说明--name="容器新名字": 为容器指定一个名称-d: 后台运行容器,并返回容器ID,也即启动守护式容器-i:以交互模式运行容器,通常与 -t 同时使用-t:为容器重新分配一个伪输入终端,通常与 -i 同时使用-P: 随机端口映射-p: 指定端口映射,有以下四种格式ip:hostPort:containerPortip::containerPorthostPort:containerPortcontainerPort-v, --volume=[] 给容器挂载存储卷,挂载到容器的某个目录--link=[] 指定容器间的关联,使用其他容器的IP、env等信息--rm:容器停止自动删除容器

4.3 创建存储 jmeter 数据的库

  • 进入终端操作
# 1.交互模式进入 influxdb 终端。
$ docker exec -it influxdb bash# 2.进入shell模式。# influx# 3.查看库。> show databases;# 4.创建名为jmeter的数据库。> create database jmeter# 5.使用库,并查看该库的表。> use jmeter> show measurements

五、Grafana

简介:它是一个跨平台的开源的多用途的监控工具,同时通过邮件等方式进行有效的预警通知,丰富的直观的可视化界面多种数据源配置是其优点所在。

5.1 镜像拉取

$ docker pull grafana/grafana:6.6.2

5.2 关联 influxdb

# 1.关联 influxdb 指定端口及版本号。
$ docker run -d --name=grafana --link=influxdb:influxdb -p 3000:3000 grafana/grafana:6.6.2# 2.进程查看。
$ docker ps# 3.镜像启动。(未启动进程时,使用该命令)
$ sudo docker start grafana

5.3 进入控制台

  • 浏览器输入[ip:3000]进行访问

5.4 数据源配置

  • 添加数据源

  • 配置项

  • 保存

5.5 控制板配置

  • 选择导入

  • 引入模板ID

  • 模板保存

六、Jmeter

  • Backend Listener监听元件设置

七、大屏监控展示

八、数据库查看

九、结束语


“-------怕什么真理无穷,进一寸有一寸的欢喜。”

微信公众号搜索:饺子泡牛奶

http://www.lryc.cn/news/161579.html

相关文章:

  • TDesign 点击高亮显示=》点击切换class类名
  • 容器编排学习(二)镜像制作和私有仓库介绍
  • tcp记录
  • IDEA中使用Java连接MySQL数据库的配置和使用方法
  • android——服务JobService
  • 一文讲清楚redis的线程池jedis
  • 备战面试每日一题
  • 【嵌入式数据库之sqlite3】
  • Android 9.0 pms中关于启动app时获取app的ActivityInfo信息相关源码分析
  • 华为数通方向HCIP-DataCom H12-821题库(单选题:321-340)
  • 《TCP/IP网络编程》阅读笔记--基于TCP的服务器端/客户端
  • 【每日一题】43. 字符串相乘
  • 机器学习——K最近邻算法(KNN)
  • 同步FIFO的verilog实现(1)——计数法
  • python正则表达式笔记1
  • YOLO目标检测——口罩规范佩戴数据集+已标注xml和txt格式标签下载分享
  • Android 13 - Media框架(9)- NuPlayer::Decoder
  • 23.09.5 《CLR via C#》 笔记5
  • laravel部署api项目遇到问题总结
  • lintcode 1646 · 合法组合【字符串DFS, vip 中等 好题】
  • 【多线程】线程安全 问题
  • 【用unity实现100个游戏之11】复刻经典消消乐游戏
  • 若依cloud 修改包名等
  • 健康系统练习
  • 网络协议从入门到底层原理学习(一)—— 简介及基本概念
  • centos密码过期导致navicat无法通过SSH登录阿里云RDS问题
  • 对于pytorch和对应pytorch网站的探索
  • 和AI聊天:动态规划
  • 微信小程序——使用插槽slot快捷开发
  • 大数据技术之Hadoop:使用命令操作HDFS(四)