JMeter监听器与压测监控之 InfluxDB

devtools/2024/11/26 4:15:32/

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。它们各自有不同的特点和配置方式:

  1. 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。
  2. 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】,用下划线代替点。
  3. 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。

http://www.ppmy.cn/devtools/137016.html

相关文章

神经网络(系统性学习三):多层感知机(MLP)

相关文章: 神经网络中常用的激活函数 神经网络(系统性学习一):入门篇 神经网络(系统性学习二):单层神经网络(感知机) 多层感知机(MLP) 多层感…

【数据结构】【线性表】一文讲完队列(附C语言源码)

队列 队列的基本概念基本术语基本操作 队列的顺序实现顺序队列结构体的创建顺序队列的初始化顺序队列入队顺序队列出队顺序队列存在的问题分析循环队列代码汇总 队列的链式实现链式队列的创建链式队列初始化-不带头结点链式队列入队-不带头节点链式队列出队-不带头结点带头结点…

中标麒麟部署k8sV1.31版本详细步骤

在中标麒麟操作系统上部署 Kubernetes v1.31 的详细步骤如下。这些步骤假定您对 Kubernetes 和 Linux 环境有基本了解,并且中标麒麟系统已正确安装并配置。 环境准备 更新系统并安装必要的软件包 sudo yum update -ysudo yum install -y wget curl vim net-tools…

k8s1.31版本最新版本集群使用容器镜像仓库Harbor

虚拟机 rocky9.4 linux master node01 node02 已部署k8s集群版本 1.31 方法 一 使用容器部署harbor (1) wget https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo -O /etc/yum.repos.d/docker-ce.repo yum -y install docker-ce systemctl enable docker…

前端工程化-node/npm/babel/polyfill/webpack 一文速通

文章主要介绍了前端工程化的相关内容,包括 Node 环境、npm 包管理器及其命令、配置和镜像,package.json 文件,babel 和 polyfill 用于解决 JavaScript 兼容性问题,以及 webpack 这一前端构建工具的作用、核心概念、构建流程、安装…

自定义 Kafka 脚本 kf-use.sh 的解析与功能与应用示例

Kafka:分布式消息系统的核心原理与安装部署-CSDN博客 自定义 Kafka 脚本 kf-use.sh 的解析与功能与应用示例-CSDN博客 Kafka 生产者全面解析:从基础原理到高级实践-CSDN博客 Kafka 生产者优化与数据处理经验-CSDN博客 Kafka 工作流程解析&#xff1a…

OpenAI震撼发布:桌面版ChatGPT,Windows macOS双平台AI编程体验!

【雪球导读】 「OpenAI推出ChatGPT桌面端」 OpenAI重磅推出ChatGPT桌面端,全面支持Windows和macOS系统!这款新工具为用户在日常生活和工作中提供了前所未有的无缝交互体验。对于那些依赖桌面端进行开发工作的专业人士来说,这一更新带来了令人…

云原生基础-云计算概览

目录 云计算的基本概念 云计算的服务模型 云计算的部署模式 云计算的基本概念 云计算是一种通过互联网提供计算资源和服务的模式。允许用户按需访问和使用各种计算资源,如服务器、存储、数据库、网络等,而无需了解底层基础设施的具体细节。云计算的核心理…