搭建基于Grafana+JMeter+InfluxDB的性能监控与分析平台(Linux)
搭建基于Grafana+JMeter+InfluxDB的性能监控与分析平台(Linux版)
在软件开发和运维领域,性能监控与分析是确保应用稳定性和用户体验的关键环节。随着应用规模的不断扩大和复杂度的增加,传统的性能测试工具和方法已难以满足需求。本文将详细介绍如何搭建一个基于Grafana、JMeter和InfluxDB的性能监控与分析平台,帮助团队更好地监控和分析应用的性能指标。
一、平台组件概述
1. JMeter
Apache JMeter是一款开源的负载测试工具,它可以模拟大量用户对网站或应用进行并发访问,从而评估其性能表现。JMeter支持多种协议和脚本语言,能够灵活配置测试场景,并生成详细的测试报告。
2. InfluxDB
InfluxDB是一个开源的时间序列数据库,专为处理高写入和查询负载而设计。它支持存储大量时间序列数据,并提供强大的查询和分析能力,非常适合用于存储和分析性能测试数据。
3. Grafana
Grafana是一个开源的监控和数据分析平台,支持多种数据源,并提供了丰富的图表和可视化选项。通过Grafana,我们可以轻松地将InfluxDB中的性能测试数据以图表形式展示出来,实现实时监控和数据分析。
二、平台搭建步骤
1. 安装并配置InfluxDB
InfluxDB 官网下载地址:https://www.influxdata.com/downloads/
Platform选择Linux,并根据官网的提示,进行下载安装InfluxDB,若在无网络的情况下可使用有网环境浏览器下载。
# 创建文件夹
mkdir /opt/performance
# 进入创建的文件夹
cd /opt/performance
# 下载 influxdb
wget https://dl.influxdata.com/influxdb/releases/influxdb2-2.7.9_linux_amd64.tar.gz
# 解压
tar xvfz influxdb2-2.7.9_linux_amd64.tar.gz
# 进入到启动脚本位置
cd influxdb2-2.7.9/usr/bin/
# 启动服务并自定义配置8999端口(注意等于号后面的冒号)
./influxd --http-bind-address=:8999 &
访问页面,成功显示
登录后,创建数据库(Bucket),并记录关键数据。
字段 | 说明 |
---|---|
User | 用户名(登录时的用户名) |
Password | 密码(登录时的密码,或初次登录时设置的密码) |
Organization | 组织(点击菜单栏的头像,再点击About查看) |
Token | 具有操作数据库权限的Token(现在Token我也不知道存哪里了,我是又重新创建了一个满权限的) |
Default Bucket | 数据库名称(jmeter运行结果存储的地方) |
查看组织
创建Token
查看数据库
2. 安装和配置Grafana
Grafana 官网下载地址:https://grafana.com/grafana/download
# 进入创建的文件夹
cd /opt/performance
# 下载 grafana
wget https://dl.grafana.com/enterprise/release/grafana-enterprise-11.1.3.linux-amd64.tar.gz
# 解压
tar -zxvf grafana-enterprise-11.1.3.linux-amd64.tar.gz
# 进入文件夹
cd grafana-v11.1.3
# 修改配置文件,如下图修改启用端口为8990
vim conf/defaults.ini
# 启动服务
./bin/grafana-server &
访问页面,成功显示。用户名 & 密码 均为 admin
3. 创建仪表板和分析视图
I. 添加数据源
点击 Configuration -> Data sources 进入数据源界面,再点击 Add data source 进入新增数据源界面。
点击 InfluxDB,创建InfluxDB数据源。
根据下面的步骤,填写表单:
Name
- 名称自定义填写
Query Language
- 查询语言选择 【Flux】
HTTP: URL
- influxDB 地址根据自己的服务器填写
InfluxDB 信息
- 填写步骤1记录的关键数据(User、Password、Organization、Token、Default Bucket)
点击 Save & Test
,返回 √ ,说明配置成功
II. 创建仪表盘
点击 Dashboards -> Browse 进入仪表盘界面,再点击 New - > import 进入导入仪表盘界面。
仪表盘模板大全:https://grafana.com/grafana/dashboards/
可根据关键字查询想要的一些模板
点击详情可获取id或获取json文件,若配置环境无网络情况下选择json文件。
我这里输入仪表盘ID:13644(influxdb2查询语句),点击导入仪表盘。
选择刚刚配置好的数据源,点击 Import 导入仪表盘。
4. 配置JMeter以写入InfluxDB
Jmeter官方自带的 Backend Listener(后端监听器) 里面 influxdb 客户端没有适配新版的 grafana 的数据看板,所以我们这里自己去 github 上找个适配 influxdb2.0 的客户端jar包。
传送门:https://github.com/mderevyankoaqa/jmeter-influxdb2-listener-plugin/
注意:该插件需要jdk11的环境
我们把下载的jar包放到jmeter的扩展/lib/ext
文件夹下。
启动Jmeter,添加线程组,添加http请求,添加后端监听器,选择github下载的插件。
插件字段配置信息:
- testName:测试名称
- nodeName:服务器的名称
- runId:标识号
- influxDBHttpScheme:InfluxDB的协议
- influxDBHost:InfluxDB服务器的主机名或 ip
- influxDBPort:InfluxDB服务器的端口
- influxDBToken:InfluxDB的Token
- influxDBOrganization:InfluxDB的组织名称
- influxDBBucket:InfluxDB的数据库名
- influxDBFlushInterval:向 InfluxDB 发送数据的时间间隔
- influxDBMaxBatchSize:批次的最大大小
- influxDBThresholdError:停止导入前的错误阈值
- samplersList:整理JMeter采样器结果的正则表达式值
- useRegexForSamplerList:是否允许使用正则表达式
- recordSubSamples:是否允许保存 JMeter 子样本
- saveResponseBodyOfFailures:是否允许保存失败的响应正文
- responseBodyLength:响应正文不超过设置的指定长度
我们可以根据需要进行填写,只修改加粗部分即可。
执行JMeter脚本,查看仪表盘
三、平台应用与优势
- 应用场景
- 实时监控:通过Grafana的仪表板,可以实时监控应用的性能指标,及时发现潜在的性能问题。
- 历史数据分析:利用InfluxDB存储的历史数据,可以进行更深入的性能分析,找出性能瓶颈和趋势。
- 性能调优:基于监控和分析结果,对应用进行性能调优,提升用户体验。
- 优势
- 开源免费:JMeter、InfluxDB和Grafana都是开源软件,可以免费使用,降低了成本。
- 灵活可扩展:平台支持自定义测试脚本和查询语句,可以根据实际需求进行灵活配置和扩展。
- 可视化效果好:Grafana提供了丰富的图表和可视化选项,能够直观地展示性能测试数据。
注:安装方法不唯一,且各个教程安装版本也不相同
搭建基于Grafana+JMeter+InfluxDB的性能监控与分析平台(Linux)的更多相关文章
- 搭建grafana+telegraf+influxdb服务器性能监控平台
最近在学习性能测试,了解到一套系统资源使用率低的监控环境,也就是grafana+telegraf+influxdb. InfluxDB是一款优秀的时间序列数据库,适合存储设备性能.日志.物联网传感器等 ...
- Centos8.X 搭建Grafana+Jmeter+Influxdb 性能实时监控平台
前言 本篇文章引用了小菠萝测试笔记,大部分内容非原创,基于自身实操过程中,完善了部分. 本篇随笔是在Linux上搭建的,后面会补充在docker以及k8s上如何部署安装 工具介绍 工具 介绍 Jmet ...
- Centos7.X 搭建Grafana+Jmeter+Influxdb 性能实时监控平台(不使用docker)
工具介绍 [centos7安装influxDB] Influxdata官网下载路径:https://portal.influxdata.com/downloads/ 1.直接执行以下命令安装 2.安装 ...
- 全网最详细!Centos7.X 搭建Grafana+Jmeter+Influxdb 性能实时监控平台
背景 日常工作中,经常会用到Jmeter去压测,毕竟LR还要钱(@¥&*...),而最常用的接口压力测试,我们都是通过聚合报告去查看压测结果的,然鹅聚合报告的真的是丑到家了,作为程序猿这当然不 ...
- Centos7 搭建Grafana+Jmeter+Influxdb 性能实时监控平台
未完,待更新 背景 日常工作中,经常会用到Jmeter去压测,毕竟LR还要钱(@¥&*...),而最常用的接口压力测试,我们都是通过聚合报告去查看压测结果的,然鹅聚合报告的真的是丑到家了,作为 ...
- web性能监控与分析
注:原文为:andyguo: <web性能监控与分析> 性能测试需要使用不同的工具,结合系统日志,监控服务器.应用等方面的多项指标.以下阐述监控指标.监控工具.瓶颈分析. 服务端监控指标 ...
- Linux性能监控与分析之--- CPU
Linux性能监控与分析之--- CPU 望月成三人关注 2016.07.25 18:16:12字数 1,576阅读 2,837 CPU性能指标 用户进程使用CPU的比率 系统进程使用CPU的比率 W ...
- .Net Core 2.*+ InfluxDB+Grafana+App Metrics实时性能监控
前言 .net core 2.* 实施性能监控 这个工具其实给运维 大大们用起来是更爽的.但是Grafana现在还没有找到中文版. 本文需要了解的相关技术与内容: InfluxDb(分布式时序数据库, ...
- 手把手教你搭建Windows 搭建Prometheus + Grafana + Jmeter可视化监控平台
下载安装包 Prometheus windows_exporter Grafana 下载地址:https://share.weiyun.com/D9sdiWoC 工作原理 Exporter 监控工具, ...
- Grafana + Influxdb Android性能监控部署
目录 前言 一.前提准备 二.安装 Grafana 三.安装 Influxdb 四.Grafana 添加 Influxdb 数据源 五.Shell 脚本写入数据到 Influxdb 前言 你是否为了数 ...
随机推荐
- sort函数详解
sort函数 简介 其实STL中的sort()并非只是普通的快速排序,除了对普通的快速排序进行优化,它还结合了插入排序和堆排序.根据不同的数量级别以及不同情况,能自动选用合适的排序方法.当数据量较大时 ...
- 使用Nginx搭建流媒体服务器
目录 什么是流媒体服务器 Nginx如何实现流媒体服务器 为Nginx安装nginx-http-flv-module 概述 流程 操作步骤 配置流媒体服务器 使用OBS推流 使用VLC拉RTMP 使用 ...
- 一图一知-强大的js数组
平时在开发中,数组基本是每天都会用到的数据结构,通过ES6的更新,数组更是越发强大,特此记录数组那些有用而强大的api.
- C#调用Python代码的方式(二),以PaddleOCR-GUI为例
前言 前面介绍了在C#中使用Progress类调用Python脚本的方法,但是这种方法在需要频繁调用并且需要进行数据交互的场景效果并不好,因此今天分享的是C#调用Python代码的方式(二):使用py ...
- RabbitMQ, Windows Server 上服务总线的替代品
RabbitMQ, Windows Server 上服务总线的替代品 https://www.robfox.io/2017/04/17/rabbitmq-alternative-service-bus ...
- 非root用户使用AntDeploy部署docker
AntDeploy这个东西非常好用,可以直接将.NET CORE的程序直接发布到docker,刚好我有这个需求,但是程序默认给的账户示例是root账户的,需要对于需要分散开发的同学来说,这个东西风险有 ...
- 【javaweb】【Session】记录用户访问时间
效果 Servlet import jakarta.servlet.*; import jakarta.servlet.http.*; import jakarta.servlet.annotatio ...
- Qt/C++编写视频监控系统80-远程回放视频流
一.前言 远程回放NVR或者服务器上的视频文件,一般有三种方式,第一种是调用厂家的SDK,这个功能最全,但是缺点明显就是每个厂家的设备都有自己的SDK,只兼容自家的设备,如果你的软件需要接入多个厂家的 ...
- Qt编写的项目作品31-PDF阅读器(雨田哥作品)
一.功能特点 仿WPS界面. 预览PDF文件. 支持PDF预览放大.缩小. 支持目录预览查看. 支持目录点击跳转页查看. 支持页数指定跳转. 支持上一页.下一页.首页.尾页跳转. 支持鼠标拖拽滑动预览 ...
- [转]VS2019+CUDA11.1 没有CUDA出现
1.VS2019+CUDA11.1 没有CUDA出现 2.VS+CUDA 新建项目里没有CUDA选项(附详细图文步骤) 3.No Cuda 10.1 runtime Template in Visua ...