JMeter监听器与压测监控之 InfluxDB
1. 简介
在本文中,我们将介绍如何在 Kali Linux 上通过 Docker 安装 InfluxDB,并使用 JMeter 对其进行性能监控。InfluxDB 是一个高性能的时序数据库,而 JMeter 是一个开源的性能测试工具,可以用于对各种服务进行负载测试和性能监控。
2. 环境准备
确保你的 Kali Linux 系统已经更新到最新版本:
sudo apt update && sudo apt upgrade -y
3.安装依赖包
安装 Docker 所需的依赖包:
sudo apt install -y apt-transport-https ca-certificates curl software-properties-common
4.添加 Docker 的官方 GPG 密钥
通过以下命令添加 Docker 的官方 GPG 密钥:
curl -fsSL https://download.docker.com/linux/debian/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg
5.添加 Docker 仓库
Kali Linux 基于 Debian,因此需要将 Docker 的 Debian 仓库添加到源列表中:
echo "deb [arch=amd64 signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/debian $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
6.更新软件包索引
添加 Docker 仓库后,更新软件包索引:
sudo apt update
7.安装 Docker 引擎
安装 Docker 引擎和相关组件:
sudo apt install -y docker-ce docker-ce-cli containerd.io
8.启动 Docker 服务并设置开机自启
sudo systemctl start dockersudo systemctl enable docker
9.验证 Docker 是否安装成功
docker --version
10. 下载influxDB镜像
接下来,我们使用 Docker 来安装 InfluxDB。运行以下命令来拉取 InfluxDB 镜像并启动容器:
docker pull influxdb:1.7.7
docker run -d -p 8086:8086 -p 8083:8083 --name=jmeterdb influxdb:1.7.7
11.进入容器内部及创建数据库,用于收集jmeter发送的压测数据
进入内部:docker exec –it jmeterdb bash
进入命令台:influx
执⾏类sql语句 创建jmeter数据库:create database jmeter;
创建完jmeter数据库之后执⾏如下命令验证数据库已经创建成功: show databases;
12. 配置 JMeter 进行监控
打开 JMeter GUI:
创建一个新的测试计划,添加一个线程组,并配置 HTTP 请求采样器来访问你的 InfluxDB 实例。例如,你可以创建一个 HTTP GET 请求来查询 InfluxDB 的状态。
为了将数据发送到 InfluxDB,你需要在 JMeter 中添加一个后端监听器(Backend Listener)。选择 org.apache.jmeter.visualizers.backend.graphite.GraphiteBackendListenerClient,并配置 InfluxDB 的连接信息。

示例配置如下:
保存并运行测试计划,JMeter 将开始向 InfluxDB 发送监控数据。

13. 总结
通过本文,我们学习了如何在 Kali Linux 上使用 Docker 安装 InfluxDB,并使用 JMeter 进行性能监控。InfluxDB 提供了一个强大的时序数据库解决方案,而 JMeter 则是一个灵活且强大的性能测试工具。结合这两者,我们可以有效地监控和分析系统性能。希望本文对你有所帮助!
附录
Backend Listener
JMeter 中的 Backend Listener 有三种主要类型,分别是 InfluxDBBackendListener、GraphiteBackendListener 和 ElasticSearchBackendListener。它们各自有不同的特点和配置方式:
-
InfluxDBBackendListener
- 特点:将测试结果数据发送到 InfluxDB 数据库进行存储。InfluxDB 是一个时间序列数据库,非常适合存储和查询时间序列数据,如性能测试结果。
- 配置项
- influxdbUrl:安装 InfluxDB 的路径;主要格式为
http://主机地址:8086/write?db=数据库名。 - application:应用名称,在 events 表中对应的字段是 application。
- measurement:表名,数据存储到哪个表,默认是 jmeter。
- summaryOnly:当你线程组有多个请求又想知道每个请求的结果数据时,最好填 false,因为 true 只会返回所有请求的集合数据报告,不会输出每条请求的数据报告。
- samplersRegex:取样器列表,想收集哪些请求就填哪些,最好用正则去匹配。
- percentiles:百分比,即类似聚合报告里 90% Line,95% Line,99% Line 的数据;倘若想要 99.9 时,需要写成【99_9】,用下划线代替点。
- testTitle:测试名称,在 events 表中对应的字段是 text,JMeter 在测试的开始和结束时自动生成注释,该注释的值以 started 和 ended 结尾。
- eventTags:Grafana 允许为每个注释显示标签,在 events 表中对应的字段是 tags。
- influxdbUrl:安装 InfluxDB 的路径;主要格式为
-
GraphiteBackendListener
- 特点:将测试结果数据发送到 Graphite 监控系统。Graphite 提供了强大的数据聚合和可视化功能,使得测试人员能够直观地了解测试结果。
- 配置项
- graphiteHost:Graphite 服务器的 IP 地址。
- port:端口号,默认是 2003。
- rootMetricsPrefix:指标的根前缀,将测试结果存入数据库时,不同指标会生成不同表,但这些表都最好要有一个共同的前缀,例如 jmeter。
- summaryOnly:当你线程组有多个请求又想知道每个请求的结果数据时,最好填 false,因为 true 只会返回所有请求的集合数据报告,不会输出每条请求的数据报告。
- samplersList:取样器列表,想收集哪些请求就填哪些,最好用正则去匹配。
- useRegexpForSamplersList:是否使用正则表达式匹配取样器列表,如果 true 则使用。
- percentiles:百分比,即类似聚合报告里 90% Line,95% Line,99% Line 的数据;倘若想要 99.9 时,需要写成【99_9】,用下划线代替点。
-
ElasticSearchBackendListener
- 特点:将测试结果数据发送到 Elasticsearch 集群。Elasticsearch 是一个分布式搜索和分析引擎,适用于处理大量数据并提供实时搜索和分析功能。
- 配置项
- elasticsearchUrl:Elasticsearch 集群的 URL。
- indexName:索引名称,用于存储测试结果数据。
- documentType:文档类型,默认是 jmeter。
- summaryOnly:当你线程组有多个请求又想知道每个请求的结果数据时,最好填 false,因为 true 只会返回所有请求的集合数据报告,不会输出每条请求的数据报告。
- samplersRegex:取样器列表,想收集哪些请求就填哪些,最好用正则去匹配。
- percentiles:百分比,即类似聚合报告里 90% Line,95% Line,99% Line 的数据;倘若想要 99.9 时,需要写成【99_9】,用下划线代替点。
- testTitle:测试名称,在 events 表中对应的字段是 text,JMeter 在测试的开始和结束时自动生成注释,该注释的值以 started 和 ended 结尾。
- eventTags:允许为每个注释显示标签,在 events 表中对应的字段是 tags。
相关文章:
JMeter监听器与压测监控之 InfluxDB
1. 简介 在本文中,我们将介绍如何在 Kali Linux 上通过 Docker 安装 InfluxDB,并使用 JMeter 对其进行性能监控。InfluxDB 是一个高性能的时序数据库,而 JMeter 是一个开源的性能测试工具,可以用于对各种服务进行负载测试和性能监…...
信息安全管理与评估赛项(网络安全)--应急响应专项训练
web1 题目来源:https://mp.weixin.qq.com/s/89IS3jPePjBHFKPXnGmKfA 题目 1.攻击者的shell密码2.攻击者的IP地址3.攻击者的隐藏账户名称4.攻击者挖矿程序的矿池域名(仅域名)5.有实力的可以尝试着修复漏洞靶机 用户:administrator密码:Zgsfadmin.com题解 攻击者…...
ElasticSearch学习篇18_《检索技术核心20讲》LevelDB设计思想
目录 一些常见的设计思想以及基于LSM树的LevelDB是如何利用这些设计思想优化存储、检索效率的。 几种常见的设计思想 索引和数据分离减少磁盘IO读写分离分层思想 LevelDB的设计思想 读写分离设计分层设计与延迟合并LRU缓存加速检索 几种常见设计思想 索引与数据分离 索引…...
使用 FFmpeg 提取音频的详细指南
FFmpeg 是一个开源的多媒体处理工具,支持视频、音频的编码、解码、转换等多种功能。通过 FFmpeg,提取视频中的音频并保存为各种格式非常简单和高效。这在音视频剪辑、媒体处理、转码等场景中具有广泛的应用。 本文将详细讲解如何使用 FFmpeg 提取音频&a…...
中国省级新质生产力发展指数数据(任宇新版本)2010-2023年
一、测算方式:参考C刊《财经理论与实践》任宇新(2024)老师的研究,新质生产力以劳动者劳动资料劳动对象及其优化组合的质变为 基本内涵,借 鉴 王 珏 和 王 荣 基 的 做 法构建新质生产力发展水平评价指标体系如下所示&a…...
C++设计模式:建造者模式(Builder) 房屋建造案例
什么是建造者模式? 建造者模式是一种创建型设计模式,它用于一步步地构建一个复杂对象,同时将对象的构建过程与它的表示分离开。简单来说: 它将复杂对象的“建造步骤”分成多部分,让我们可以灵活地控制这些步骤。通过…...
Python 快速入门(上篇)❖ Python基础知识
Python 基础知识 Python安装**运行第一个程序:基本数据类型算术运算符变量赋值操作符转义符获取用户输入综合案例:简单计算器实现Python安装** Linux安装: yum install python36 -y或者编译安装指定版本:https://www.python.org/downloads/source/ wget https://www.pyt…...
string接口的模拟实现
文章目录 一. string底层逻辑演示声明和定义分开 二. size()三. operator[]四. 迭代器四. const迭代器五. 预留空间(reserve)六. 尾插一个字符push_back七. 尾插一个字符串append八. operator九. operator 一. string底层逻辑 (1)为了和库里面…...
sed使用扩展正则表达式时, -i 要写在 -r 或 -E 的后面
sed使用扩展正则表达式时, -i 要写在 -r 或 -E 的后面 前言 -r 等效 -E , 启用扩展正则表达式 -E是新叫法,更统一,能增强可移植性 , 但老系统,比如 CentOS-7 的 sed 只能用 -r ### Ubuntu24.04-E, -r, --regexp-extendeduse extended regular expressions in the script(fo…...
Verilog HDL可综合与不可综合语句
目录 什么是逻辑综合 可综合语句 不可综合语句 逻辑综合建模建议 综合流程 什么是逻辑综合 所谓逻辑综合就是在标准单元库和特定的设计约束的基础上,把设计的高层次描述转换成优化的门级网表的过程。 标准单元库(工艺库)可以包含简单的…...
tomcat 后台部署 war 包 getshell
1. tomcat 后台部署 war 包 getshell 首先进入该漏洞的文件目录 使用docker启动靶场环境 查看端口的开放情况 访问靶场:192.168.187.135:8080 访问靶机地址 http://192.168.187.135:8080/manager/html Tomcat 默认页面登录管理就在 manager/html 下,…...
网络云计算】2024第47周-每日【2024/11/21】周考-实操题-RAID6实操解析1
文章目录 1、RAID6配置指南(大致步骤)2、注意事项3、截图和视频 网络云计算】2024第47周-每日【2024/11/21】周考-实操题-RAID6实操 RAID6是一种在存储系统中实现数据冗余和容错的技术,其最多可以容忍两块磁盘同时损坏而不造成数据丢失。RAID…...
前端面试题大汇总:React 篇
基础知识 1. 什么是 React?它的主要特点是什么? React 是一个用于构建用户界面的 JavaScript 库,由 Facebook 开发并维护。它主要用于构建单页应用程序(SPA)和复杂的用户界面。React 的主要特点包括: 组件…...
【prism】遇到一个坑,分享!
背景 我通用prism的方式写了一个弹窗,弹窗绑定一个 Loaded 事件,但是Loaded事件一直不触发!!! 具体过程 我的loaded事件也是通过命令的方式绑定的: <i:Interaction.Triggers><i:EventTrigger EventName="Loaded...
Python+Selenium+Pytest+Allure+ Jenkins webUI自动化框架
Python+Selenium+Pytest+Allure+ Jenkins webUI自动化框架 WebUI接口框架使用的工具...
智象未来(HiDream.ai)技术赋能,开启AR眼镜消费时代
Rokid Jungle 2024合作伙伴暨新品发布会于近日隆重举行,标志着AR眼镜跑步进入消费时代,更预示着ARAI技术融合的新篇章。智象未来(HiDream.ai),作为多模态生成式人工智能技术的领跑者,与Rokid的深度合作&…...
element dialog 2层弹窗数据同步问题
注意:本帖为公开技术贴,不得用做任何商业用途 element dialog 2层弹窗数据同步问题 如果嵌套dialog,也就是多层dialog嵌套 2个input,key用同样的值 会导致内外2层dialog,用相同key值的input会数据同步 原因如下&a…...
向量数据库FAISS之五:原理(LSH、PQ、HNSW、IVF)
1.Locality Sensitive Hashing (LSH) 使用 Shingling MinHashing 进行查找 左侧是字典,右侧是 LSH。目的是把足够相似的索引放在同一个桶内。 LSH 有很多的版本,很灵活,这里先介绍第一个版本,也是原始版本 Shingling one-hot …...
要素市场与收入分配
生产要素与家庭收入 生产要素:企业用于生产产品或劳务的最初投入,主要分为三类: 劳动:工人的时间和技能 土地:代指自然资源 资本:指的是货币形式的资本,可以供企业用来购置厂房、设备等资本品…...
Web3的核心技术:区块链如何确保信息安全与共享
在互联网不断迭代的进程中,Web3被视为下一代互联网的核心发展方向,其目标是构建更加开放、安全、去中心化的数字生态。在这一过程中,区块链作为核心技术,为信息安全与共享提供了全新解决方案。本文将深入探讨区块链如何在Web3中实…...
解决Ubuntu22.04 VMware失败的问题 ubuntu入门之二十八
现象1 打开VMware失败 Ubuntu升级之后打开VMware上报需要安装vmmon和vmnet,点击确认后如下提示 最终上报fail 解决方法 内核升级导致,需要在新内核下重新下载编译安装 查看版本 $ vmware -v VMware Workstation 17.5.1 build-23298084$ lsb_release…...
页面渲染流程与性能优化
页面渲染流程与性能优化详解(完整版) 一、现代浏览器渲染流程(详细说明) 1. 构建DOM树 浏览器接收到HTML文档后,会逐步解析并构建DOM(Document Object Model)树。具体过程如下: (…...
3403. 从盒子中找出字典序最大的字符串 I
3403. 从盒子中找出字典序最大的字符串 I 题目链接:3403. 从盒子中找出字典序最大的字符串 I 代码如下: class Solution { public:string answerString(string word, int numFriends) {if (numFriends 1) {return word;}string res;for (int i 0;i &…...
【论文阅读28】-CNN-BiLSTM-Attention-(2024)
本文把滑坡位移序列拆开、筛优质因子,再用 CNN-BiLSTM-Attention 来动态预测每个子序列,最后重构出总位移,预测效果超越传统模型。 文章目录 1 引言2 方法2.1 位移时间序列加性模型2.2 变分模态分解 (VMD) 具体步骤2.3.1 样本熵(S…...
GruntJS-前端自动化任务运行器从入门到实战
Grunt 完全指南:从入门到实战 一、Grunt 是什么? Grunt是一个基于 Node.js 的前端自动化任务运行器,主要用于自动化执行项目开发中重复性高的任务,例如文件压缩、代码编译、语法检查、单元测试、文件合并等。通过配置简洁的任务…...
多模态图像修复系统:基于深度学习的图片修复实现
多模态图像修复系统:基于深度学习的图片修复实现 1. 系统概述 本系统使用多模态大模型(Stable Diffusion Inpainting)实现图像修复功能,结合文本描述和图片输入,对指定区域进行内容修复。系统包含完整的数据处理、模型训练、推理部署流程。 import torch import numpy …...
Java求职者面试指南:Spring、Spring Boot、Spring MVC与MyBatis技术解析
Java求职者面试指南:Spring、Spring Boot、Spring MVC与MyBatis技术解析 一、第一轮基础概念问题 1. Spring框架的核心容器是什么?它的作用是什么? Spring框架的核心容器是IoC(控制反转)容器。它的主要作用是管理对…...
沙箱虚拟化技术虚拟机容器之间的关系详解
问题 沙箱、虚拟化、容器三者分开一一介绍的话我知道他们各自都是什么东西,但是如果把三者放在一起,它们之间到底什么关系?又有什么联系呢?我不是很明白!!! 就比如说: 沙箱&#…...
人工智能 - 在Dify、Coze、n8n、FastGPT和RAGFlow之间做出技术选型
在Dify、Coze、n8n、FastGPT和RAGFlow之间做出技术选型。这些平台各有侧重,适用场景差异显著。下面我将从核心功能定位、典型应用场景、真实体验痛点、选型决策关键点进行拆解,并提供具体场景下的推荐方案。 一、核心功能定位速览 平台核心定位技术栈亮…...
【若依】框架项目部署笔记
参考【SpringBoot】【Vue】项目部署_no main manifest attribute, in springboot-0.0.1-sn-CSDN博客 多一个redis安装 准备工作: 压缩包下载:http://download.redis.io/releases 1. 上传压缩包,并进入压缩包所在目录,解压到目标…...

