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

news2024/11/25 4:25:55

章节目录:

    • 一、背景介绍
      • 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:containerPort
	      ip::containerPort
	      hostPort:containerPort
	      containerPort
  -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.coloradmin.cn/o/994825.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Day_13 > 指针进阶(2)

目录 1.函数指针数组 2.指向函数指针数组的指针 3.回调函数 qsort()函数 代码示例 void* 4.结束 今天我们在进阶指针的基础上&#xff0c;学习进阶指针的第二部分 1.函数指针数组 首先我们回顾一下指针数组 char* arr[5]://字符指针数组 - 数组 - 存放的是字符指针 in…

mysql的索引结构

索引概述 索引&#xff08; index &#xff09;是帮助 MySQL 高效获取数据的数据结构 ( 有序 ) 。在数据之外&#xff0c;数据库系统还维护着满足特定查找算法的数据结构&#xff0c;这些数据结构以某种方式引用&#xff08;指向&#xff09;数据&#xff0c; 这样就可以在这些…

Spring与OAuth2:实现第三方认证和授权的最佳实践

&#x1f337;&#x1f341; 博主猫头虎&#xff08;&#x1f405;&#x1f43e;&#xff09;带您 Go to New World✨&#x1f341; &#x1f984; 博客首页——&#x1f405;&#x1f43e;猫头虎的博客&#x1f390; &#x1f433; 《面试题大全专栏》 &#x1f995; 文章图文…

python基本类型

数值类型 整型 int_val 1145143 print(int_val)python中的整型是大数类型。 一些其他函数 val 30 vlen val.bit_length() # 转换为二进制的长度 v_8 oct(val) print(v_8) # 将十进制转为八进制 v_16 hex(val) # 将十进制转为十六进制 v_2 bin(val) # 将十进制转为二进…

二、环境配置,项目运行 —— TinyWebServer

环境配置&#xff0c;项目运行 —— TinyWebServer 一、前言 上一期已经介绍过这个项目的基本结构&#xff0c;不懂得可以点开主页查找。 写代码前。一般的步骤就是&#xff0c;先把别人的代码下载下来运行。一、一方面看看最终效果是否是自己想要的&#xff0c;二、掌握项目…

redis分布式锁详解

一、基本分布式锁实现 1、案例&#xff08;扣减库存&#xff09; RequestMapping("reduceStock")public String reduceStock() {String lockKey "lock:product_101";String clientId UUID.randomUUID().toString();// 过期时间要和设置key成为一条命令…

linux下shell脚本实现wordpress搭建

wordpress_auto_install.sh #!/bin/bashuser$(whoami)function wordpress_auto_install () { if [ $user "root" ];thenecho "前提&#xff1a;调整系统配置&#xff0c;如关闭selinux、firewall等&#xff01;"sed -i s/SELINUXenforcing/SELINUXdis…

光线投射之伪3d

光线投射是一种在 2D 地图中创建 3D 透视的渲染技术。当计算机速度较慢时&#xff0c;不可能实时运行真正的 3D 引擎&#xff0c;光线投射是第一个解决方案。光线投射可以非常快&#xff0c;因为只需对屏幕的每条垂直线进行计算。 光线投射的基本思想如下&#xff1a;地图是一…

rtthread下基于spi device架构MCP25625驱动

1.CAN驱动架构 由于采用了RTT的spi device架构&#xff0c;不能再随心所遇的编写CAN驱动 了&#xff0c;之前内核虽然采用了RTT内核&#xff0c;但是驱动并没有严格严格按RTT推荐的架构来做&#xff0c;这次不同了&#xff0c;上次是因为4个MCP25625挂在了4路独立的SPI总线上&…

【图论】Floyd

算法提高课笔记&#xff09; 文章目录 例题牛的旅行题意思路代码 排序题意思路代码 观光之旅题意思路代码 例题 牛的旅行 原题链接 农民John的农场里有很多牧区&#xff0c;有的路径连接一些特定的牧区。 一片所有连通的牧区称为一个牧场。 但是就目前而言&#xff0c;你…

程序依赖相关知识点(PDG,SDG)

什么叫可达性 变量v的定义d&#xff1a;对变量v的赋值语句称为变量v的定义 变量v的使用&#xff1a;在某个表达式中引用变量v的值 当变量v被再次赋值时&#xff0c;上一次赋值对变量v的定义d就被kill掉了 如果定义d到点p之间存在一条路径&#xff0c;且在路径中定义d没有被…

Java 多线程系列Ⅵ(并发编程的五大组件)

JUC 组件 前言一、Callable二、ReentrantLock三、Atomic 原子类四、线程池五、Semaphore六、CountDownLatch 前言 JUC&#xff08;Java.util.concurrent&#xff09;是 Java 标准库中的一个包&#xff0c;它提供了一组并发编程工具&#xff0c;本篇文章就介绍几组常见的 JUC 组…

汇川PLC学习Day2:编写检测IO端口状态程序

汇川PLC学习Day2&#xff1a;编写检测IO端口状态程序 一、 新增IO和模拟量模块 IO组态界面 模块参数设置 程序编写 想法是将DA模块的通道0接到AD模块的通道0&#xff0c;将DA模块的通道1接到AD模块的通道1&#xff0c;PLC本身发模拟量给自己PLC收模拟量转换&#xff0c;…

MySQL 8.0.25版本下载、安装及配置(Windows 10/11 64位)详细教程【超详细,保姆级教程!!!】

本文介绍关于windows 11如何安装配置MySQL 8.0.25版本的详细步骤 MySQL下载地址&#xff08;官网&#xff09; 一、下载MySQL 8.0.25 1、进入官网&#xff0c;选择版本 8.0.25 2、下载MySQL压缩包 3、下载完成后将压缩包解压至方便自己查找的位置&#xff08;切记&#xf…

Tensor数据转换为稀疏矩阵

Tensor数据转换为稀疏矩阵 一、稀疏矩阵 原文链接 常用的稀疏矩阵存储格式有COO&#xff0c;CSR/CSC&#xff0c;LIL 1.COO COO(Coordinate format )是最为简单的格式&#xff0c;以三元组的形式存储稀疏矩阵。记录矩阵中非零元素的数值和所在的行序号和列序号。形式为&am…

工商业储能CE认证电表ADW300

安科瑞 华楠 ADW300 无线计量仪表主要用于计量低压网络的三相有功电能&#xff0c;具有体积小、精度高、功能丰富等优点&#xff0c;并且可选通讯方式多&#xff0c;可支持 RS485 通讯和 Lora、NB、4G、wifi 等无线通讯方式&#xff0c;增加了外置互感器的电流采样模式&#x…

【数据结构】线性表

线性表 顺序表链式存储单链表双链表 知识目录 顺序表 概念&#xff1a;用一组地址连续的存储单元依次存储线性表的数据元素&#xff0c;这种存储结构的线性表称为顺序表。 特点&#xff1a;逻辑上相邻的数据元素&#xff0c;物理次序也是相邻的。 只要确定好了存储线性表的…

基本数据类型和包装类型 使用规范

使用规范 1 概念1.1 基本数据类型1.2 包装类型1.3 对应关系1.4 自动装箱/拆箱 2 变量类型2.1 全局变量2.1.1 常量&#xff08;Constants&#xff09;2.1.2 类变量&#xff08;Class Variables&#xff09;2.1.3 实例变量&#xff08;Instance Variables&#xff09; 2.2 局部变…

快速实现抖音上下滑动,你不知道的ViewPager2用法,信息量巨大,建议收藏点赞。老tier~

万能ViewPager2适配器–SmartViewPager2Adapter 特点功能 完全脱离xml&#xff0c;所有效果只需要通过api调用 具体功能&#xff1a;1. 两句代码实现抖音列表效果2. 无感且丝滑&#xff0c;动态从头部或者底部加载数据3. 设置上下加载监听&#xff0c;再达到预加载limit的时…

用python实现基本数据结构【02/4】

*说明 如果需要用到这些知识却没有掌握&#xff0c;则会让人感到沮丧&#xff0c;也可能导致面试被拒。无论是花几天时间“突击”&#xff0c;还是利用零碎的时间持续学习&#xff0c;在数据结构上下点功夫都是值得的。那么Python 中有哪些数据结构呢&#xff1f;列表、字典、集…