首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >JMeter + Grafana +InfluxDB性能监控

JMeter + Grafana +InfluxDB性能监控

原创
作者头像
AI智享空间
发布2025-07-03 08:31:02
发布2025-07-03 08:31:02
3790
举报
文章被收录于专栏:软件测试软件测试

您可以通过JMeter、Grafana 和 InfluxDB来搭建一个炫酷的基于JMeter测试数据的性能测试监控平台。

下面,笔者详细介绍具体的搭建过程。

  • 安装并配置InfluxDB

从清华大学开源软件镜像站等获得InfluxDB的RPM包,这里笔者下载的是influxdb-1.8.0.x86_64.rpm包文件,大家可以依据自己机器情况选择适合的版本,将其上传到虚拟机的/usr/local目录下,如图1所示。

图1
图1

应用rpm -ivh influxdb-1.8.0.x86_64.rpm命令安装InfluxDB,如图2所示。

图2
图2

应用vi /etc/influxdb/influxdb.conf命令修改InfluxDB配置文件,这里主要打开并修改图3所示的enabled、database和bind-address配置项的值。

图3
图3

下面简单对这几个配置项做下介绍:

代码语言:txt
复制
enabled = true  # 是否启用该模块,默认值 :false
database = "jmeter"  # 数据库名称,默认值:"graphite"
bind-address = ":2008"  # 绑定端口,默认值:":2003"
protocol = "tcp"  # 协议,默认值:"tcp"
consistency-level = "one"  # 一致性级别,默认值:"one"

修改完成后,保存该配置文件。

启动并登录到InfluxDB客户端,创建一个名称为jmeter的数据库,如图4所示。

图4
图4

启动InfluxDB对应的命令为systemctl start influxdb。

登录InfluxDB客户端的命令为influx -host 127.0.0.1 -port 8086,127.0.0.1为本机,InfluxDB默认使用的是8086端口。注,该端口不是influxdb.conf配置文件的2008,2008为JMeter往InfluxDB数据库写数据的端口。创建好jmeter数据库后,就可以输入exit退出InfluxDB客户端了。

  • 安装并配置Grafana

从清华大学开源软件镜像站等获得Grafana的RPM包,这里笔者下载的是grafana-7.1.5-1.x86_64.rpm包文件,大家可以依据自己机器情况选择适合的版本,将其上传到虚拟机的/usr/local目录下,如图1所示。

应用rpm -ivh grafana-7.1.5-1.x86_64.rpm命令安装Grafana,如图5所示。

图5
图5

依次执行systemctl daemon-reload、systemctl enable grafana-server.service和systemctl start grafana-server.service这3条命令,如图6所示。

图6
图6

打开浏览器,输入URL地址为http://localhost:3000,如图7所示。默认用户名和密码都是admin。

图7
图7

输入用户名和密码后,单击Login按钮,将让您设置新的密码,如图8所示。

图8
图8

单击Sumbit按钮,则进入到Grafana主页面,如图9所示。

图9
图9

如图9所示,单击Add data source按钮为Grafana添加一个要展示的数据源,在弹出的图10所示对话框,选择InfluxDB数据类型。

图10
图10

在设置页面,主要配置2项内容,即:URL和Database,URL输入InfluxDB服务器所在地址和端口,因为笔者将InfluxDB和Grafana均部署在这台CentOS虚拟机上了,所以URL地址填写为http://localhost:8086,Database则填写刚才我们在InfluxDB中建的数据库名称,即:jmeter,如图11所示。

图11
图11

单击Save &Test 按钮保存并测试配置是否成功,若出现绿色的“Data source is working”则表示成功连接到指定的数据源,如图12所示。

图12
图12

Grafana官网提供了丰富的Dashboard模版可供我们选择,这里笔者搜索jmeter相关的Dashboard模版,可以看到出现了很多内容,这里我们查看目前下载最多的也就是第一项,如图13所示。

图13
图13

查看该Dashboard模版可以看到其对应的ID为5496,如图14所示。

图14
图14

接下来,您就可以进入到Grafana,导入该Dashboard模版。如图15所示,依次单击对应的菜单项或按钮。

图15
图15

当出现图16所示页面时,输入Dashboard模版对应的ID,即:5496,单击Load按钮。

图16
图16

则自动加载导入Dashboard的信息,您可以依据自身的实际情况配置,这里笔者金修改DB name选项为InfluxDB即可,如果前期您创建的数据库名称不是jmeter,则在Measurement name要设置为对应的数据库名称,如图17所示。

图17
图17

单击Import按钮后,将显示图18所示界面信息。您将会看到非常丰富的JMeter结果图表信息,当然因为现在我们并没有执行JMeter脚本,自然不会产生相应的执行结果,也就不会有数据写入到InfluxDB的jmeter数据库,所以Grafana展现数据为空。

图18
图18
  • 配置JMeter

这里笔者创建了一个访问搜搜首页(www.soso.com)的脚本,如图19所示。

图19
图19

为了能够让Grafana展现炫酷的压测结果相关性能指标数据,需要添加一个Backend Listener元件,如图20所示。

图20
图20

在弹出的Backend Listener对话框中,您需要配置Backend Listener implementation,选择org.apache.jmeter.visualizers.backend.influxdb.InfluxdbBackendListenerClient选项,切记不要选错。在influxdbUrl中输入InfluxDB所在服务器地址,这里我们输入虚拟机所在的地址(192.168.176.129),完整influxdbUrl信息为http://192.168.176.129:8086/write?db=jmeter

同样提醒您的是数据库的名字千万不要写错了,应填写您实际创建的数据库名称。

measurement保留默认值jmeter,参见图21所示。压测过程中JMeter将向InfluxDB回写压测结果数据,其会自动创建一些measurement(类似于mysql数据库的表),从图22大家不难发现events、jmeter等就是它自动创建的measurement,而此处的jmeter并非创建的数据库jmeter,只是同名而已,大家必须要清楚这点。

为了区分不同的应用在application处,笔者填写的是192.168.176.129_soso,它将作为Grafana过滤数据的一个条件,参见图25。

图21
图21
图22
图22

为了能让大家看到压测结果的一些图表信息,笔者设置100秒内加载10个用户且每个用户执行10次,也就是在100秒内执行100次访问搜搜首页的测试场景,如图23所示。

图23
图23

待该测试计划场景执行完成后,访问Grafana,单击最近查看的面板下方的Apache JMeter Dashboard using Core InfluxdbBackendListenerClient链接,如图24所示。

图24
图24

在展现的JMeter面板中,可以看到出现了带数据的漂亮图表,清楚的看到本次执行压测共发送了100个请求,没有失败的请求等,如图25所示。当数据量大时,可以通过先前在JMeter配置时设置的application值来进行结果数据的过滤。

图25
图25

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档