全网最详细!Centos7.X 搭建Grafana+Jmeter+Influxdb 性能实时监控平台 (上)

本文涉及的产品
可观测可视化 Grafana 版,10个用户账号 1个月
简介: 全网最详细!Centos7.X 搭建Grafana+Jmeter+Influxdb 性能实时监控平台 (上)

背景


日常工作中,经常会用到Jmeter去压测,毕竟LR还要钱(@¥&*...),而最常用的接口压力测试,我们都是通过聚合报告去查看压测结果的,然鹅聚合报告的真的是丑到家了,作为程序猿这当然不能忍!那我们要怎么给它变得好看点捏?

 

如何华丽变身?

方式

优点

缺点

场景

Jmeter+ant+Jenkins

快捷,上手简单

报告还是不够美观、直观,如果测试接口一多,报告就会显示臃肿不够直观

看最终报告

Grafana+Jmeter+Influxdb(推荐)

数据可视化,数据直观,筛选功能强大,拓展能力强

当然就是要自己部署环境咯,还得了解Influxdb的语法和常用查询语句,系统方法等.....

看压测过程中参数的变化

 

工具介绍


工具

介绍

Jmeter

Java语言开发的压力测试工具(不多介绍)

InfluxDB 

Go 语言开发的一个开源分布式时序数据库,非常适合存储指标、事件、分析等数据

Grafana 

纯 Javascript 开发的前端工具,用于访问 InfluxDB,自定义报表、显示图表等


image.png


Centos7安装InfluxDB


备注:博主是自己买的阿里云服务器哈,就不介绍虚拟机下如何安装了(毕竟虚拟机很多坑...)

InfluxDB 官网下载路径:https://portal.influxdata.com/downloads/


1、直接执行以下命令进行安装:

wget https://dl.influxdata.com/influxdb/releases/influxdb-1.6.3.x86_64.rpm

sudo yum localinstall influxdb-1.6.3.x86_64.rpm


2、安装完成后,修改InfluxDB的配置,主要配置jmeter存储的数据库与端口号

vim /etc/influxdb/influxdb.conf


3、找到graphite并且修改它的库与端口

enabled = true

database = "jmeter"

retention-policy = ""

bind-address = ":2003"

protocol = "tcp"

consistency-level = "one"

image.png

5、现在新版本的InfluxDB已取消自带的数据可视化界面了,旧版的还是有,可通过找到admin,将前面的#号去掉,开放它的UI端口;(该步骤非必须!)

可通过InfluxDB可视化工具来查看我们的数据库和数据哦,具体安装和简单使用参照此篇博文:https://www.cnblogs.com/poloyy/p/12213495.html

[admin]

# Determines whether the admin service is enabled.

enabled = true


# The default bind address used by the admin service.

bind-address = ":8083"

6、配置成功后,启动InfluxDB

启动命令: systemctl start influxdb.service

查看状态命令: systemctl status influxdb.service

image.png

到此,InfluxDB已安装并配置完成了!!*:ஐ٩(๑´ᵕ`)۶ஐ:*

特别说明:

  • 8083端口:InfluxDB的UI界面展示的端口
  • 8086端口:Grafana用来从数据库取数据的端口
  • 2003端口:刚刚设置的,Jmeter往数据库发数据的端口

 

Centos7安装Grafana


Grafana官网下载路径:https://grafana.com/grafana/download

1、直接执行以下命令进行安装:

wget https://dl.grafana.com/oss/release/grafana-6.5.2-1.x86_64.rpm

sudoyum localinstall grafana-6.5.2-1.x86_64.rpm

2、然后启动即可

启动命令: systemctl start grafana-server.service

查看状态命令: systemctl status grafana-server.service


image.png

3、访问IP加端口 http://xxx.xx.xx.xx:3000输入用户名,密码登录系统。用户名与密码都是"admin",如果能打开页面则已经成功了!但是...装环境这东西怎么可能这么简单??

4、当你查看状态是active但是访问3000时是失败的话,辣么有可能就是你的3000端口还未开放!

跟着这篇文章来操作就可以开放3000端口啦:https://www.cnblogs.com/poloyy/p/12213297.html

5.访问IP加端口 http://xxx.xx.xx.xx:3000若能访问到grafana就是成功啦!

 

配置Jmeter


这里就不教如何安装Jmeter了哈,主要讲Jmeter作为采集端是通过什么采集数据的

步骤一:在线程组中,添加监听器(Listener)- Backend Listener

image.png

步骤二:配置Backend Listener

image.png


可以看到,Jmeter默认选中的Implementatin是 GraphiteBackendListenerClient ,它是Jmeter 2.13就开始提供了;在Jmeter 3.2时又加多了一个 InfluxDBBackendListenerClient ,哎~这两者有什么区别呢?后面会讲到!

这里先讲选中 GraphiteBackendListenerClient 时,每个配置项的含义

  • graphiteHost:InfluxDB安装的服务器的ip
  • graphitePort:端口;默认就是2003,除非你自己安装InfluxDB时设置了其他端口是哦(可见上面安装InfluxDB后关于graphite的配置)
  • rootMetricsPrefix:指标的根前缀;将测试结果存入数据库时,不同指标会生成不同表,但这些表都最好要有一个共同的前缀,这个就是了;后面会讲到不同的指标的含义(重点哦)
  • summaryOnly:当你线程组有多个请求又想知道每个请求的结果数据时,最好填false,因为true只会返回所有请求的集合数据报告,不会输出每条请求的数据报告
  • samplersList:取样器列表;想收集哪些请求就填哪些,最好用正则去匹配,减轻工作量
  • useRegexpForSamplersList:是否使用正则;如果true则使用,samplersList里可以匹配正则表达式
  • percentiles:百分比;即类似聚合报告里90% Line,95% Line,99% Line的数据;倘若想要99.9时,需要写成【99_9】,用下划线代替点

建议:如果想看每个请求的结果数据的话,根据我的截图进行配置即可;只需改动samplerList来匹配你需要监控的请求,其他不用动!

相关实践学习
通过可观测可视化Grafana版进行数据可视化展示与分析
使用可观测可视化Grafana版进行数据可视化展示与分析。
相关文章
|
9天前
|
测试技术 数据库 UED
Python 性能测试进阶之路:JMeter 与 Locust 的强强联合,解锁性能极限
【9月更文挑战第9天】在数字化时代,确保软件系统在高并发场景下的稳定性至关重要。Python 为此提供了丰富的性能测试工具,如 JMeter 和 Locust。JMeter 可模拟复杂请求场景,而 Locust 则能更灵活地模拟真实用户行为。结合两者优势,可全面评估系统性能并优化瓶颈。例如,在电商网站促销期间,通过 JMeter 模拟大量登录请求并用 Locust 模拟用户浏览和购物行为,可有效识别并解决性能问题,从而提升系统稳定性和用户体验。这种组合为性能测试开辟了新道路,助力应对复杂挑战。
26 2
|
1月前
|
测试技术 持续交付 Apache
性能怪兽来袭!Python+JMeter+Locust,让你的应用性能飙升🦖
【8月更文挑战第5天】随着互联网应用规模增长,性能测试至关重要。本文介绍如何利用Python结合Apache JMeter和Locust构建高效可定制的性能测试框架。JMeter广泛用于负载测试,通过模拟大量虚拟用户并发访问来评估性能。Locust基于Python,通过编写简单脚本模拟HTTP请求,特别适合Web应用测试,比JMeter更灵活易扩展。Python作为胶水语言简化测试脚本编写并流畅自动化流程。文章提供JMeter命令行测试和Locust脚本示例,并展示如何用Python自动化执行和整合测试结果,最终帮助应用在高负载下稳定运行。
58 1
|
4天前
|
缓存 Java 测试技术
谷粒商城笔记+踩坑(11)——性能压测和调优,JMeter压力测试+jvisualvm监控性能+资源动静分离+修改堆内存
使用JMeter对项目各个接口进行压力测试,并对前端进行动静分离优化,优化三级分类查询接口的性能
谷粒商城笔记+踩坑(11)——性能压测和调优,JMeter压力测试+jvisualvm监控性能+资源动静分离+修改堆内存
|
1月前
|
存储 Linux 数据库
性能工具之JMeter + Grafana + InfluxDB 性能平台搭建
【8月更文挑战第7天】性能工具之JMeter + Grafana + InfluxDB 性能平台搭建
49 1
性能工具之JMeter + Grafana + InfluxDB 性能平台搭建
|
1月前
|
监控 Java 测试技术
实战派必看!Python性能测试中,JMeter与Locust如何助力性能调优
【8月更文挑战第6天】性能优化是软件开发的关键。本文介绍JMeter与Locust两款流行性能测试工具,演示如何用于Python应用的性能调优。JMeter可模拟大量用户并发访问,支持多种协议;Locust用Python编写,易于定制用户行为并模拟高并发。根据场景选择合适工具,确保应用在高负载下的稳定运行。
82 4
|
1月前
|
测试技术 数据库 UED
Python 性能测试进阶之路:JMeter 与 Locust 的强强联合,解锁性能极限
【8月更文挑战第6天】在数字化时代,确保软件在高并发下的稳定性至关重要。Python 提供了强大的性能测试工具,如 JMeter 和 Locust。JMeter 可配置复杂请求场景,而 Locust 则以 Python 脚本灵活模拟真实用户行为。两者结合,可全面评估系统性能。例如,对电商网站进行测试时,JMeter 模拟登录请求,Locust 定义浏览和购物行为,共同揭示系统瓶颈并指导优化,从而保证稳定高效的用户体验。
69 1
|
1月前
|
物联网 应用服务中间件 Linux
CentOS7.9 Nginx+EMQX集群组建MQTTS平台
通过以上步骤,您已成功搭建了一个基于CentOS 7.9、Nginx和EMQX的MQTTS平台。这个平台既能保证数据传输的安全性,又能利用Nginx的负载均衡能力和EMQX的高性能、高并发处理能力,实现稳定高效的消息服务。在部署和配置过程中,务必注意证书、域名以及EMQX配置的正确性,确保系统安全和稳定运行。此外,定期更新软件和系统,以及监控系统性能,也是保证MQTTS平台长期稳定运行的重要环节。
65 4
|
1月前
|
物联网 应用服务中间件 Linux
CentOS7.9 Nginx+EMQX集群组建MQTTS平台
通过以上步骤,您已成功搭建了一个基于CentOS 7.9、Nginx和EMQX的MQTTS平台。这个平台既能保证数据传输的安全性,又能利用Nginx的负载均衡能力和EMQX的高性能、高并发处理能力,实现稳定高效的消息服务。在部署和配置过程中,务必注意证书、域名以及EMQX配置的正确性,确保系统安全和稳定运行。此外,定期更新软件和系统,以及监控系统性能,也是保证MQTTS平台长期稳定运行的重要环节。
57 3
|
1月前
|
数据采集 监控 Unix
性能监控之Telegraf+InfluxDB+Grafana实现结构化日志实时监控
【8月更文挑战第1天】性能监控之Telegraf+InfluxDB+Grafana实现结构化日志实时监控
159 0
|
2月前
|
测试技术 Linux
linux 服务器运行jmeter 进行服务性能压测
linux 服务器运行jmeter 进行服务性能压测
71 0