grafana默认用户名密码_Jmeter + Grafana + InfluxDB 性能测试监控

备注:以下内容来自 龙腾测试 - Jmeter + Grafana + InfluxDB 性能测试监控

阅读目录
1. 安装InfluxDB
2. 配置Jmeter
3. 安装`Grafana`和`influxDB`数据源配置

序章

前几天在群里看到大神们在讨论Jmeter + InfluxDB + Grafana监控。说起来Jmeter原生的监控确实太丑了。当年不断安慰自己说“丑一点没关系,只要能用,好用,就行了!”。但是内心并不是这样,做为一名测试人员,都有一颗精益求精的心。看到有东西可以替代那原生的监控数据,果断亲自动手部署了一套。

5127c24052bbc993b0a2f82e2a333d3a.png

是吧,很帅吧!数据是用InfluxDB来存储的,展示则是用Grafana来展示的

InfluxDB是一个年轻的时序数据库,是用同样很年轻的语言“GO”开发出来的。小数据量的时候还性能还不错,但是数据量大一点,性能问题就体现出来了。不过只是收集一下我几个小时测试的数据,还是足够了。要是几个月的测试数据那还是挑别的数据库吧。

Grafana是纯粹用js编写出来的,专门用来展示数据用的。

基本上,就是Jmeter通过“Backend Listener”,将测试的数据上传到我的虚拟机上,通过InfluxDB来存储,Grafana来展示出来。我们访问web,稍微配置一下,就可以看到展示的数据了。

我的InfluxDB和Grafana都是部署在一台Linux虚拟机下面的。

1、influxdb下载安装:

[root@localhost ~]# wget https://dl.influxdata.com/influxdb/releases/influxdb-1.7.0.x86_64.rpm --no-check-certificate

[root@localhost ~]# rpm -ivh influxdb-1.7.0.x86_64.rpm

(如果未安装wget,需要先安装,安装命令:
[root@localhost ~]# yum search wget、
[root@localhost ~]# yum install wget.x86_64,安装rpm命令:(ubuntu系统:apt-get install rpm))

安装完之后,配置文件路径为:/etc/influxdb/influxdb.conf

修改配置文件:

[root@localhost ~]# vi /etc/influxdb/influxdb.conf

在配置文件中找到graphite配置项 

[meta]
    # Where the metadata/raft database is stored
    # 存放最终存储的数据,文件以.tsm
    dir = "/usr/local/influxdb/meta"

    [data]
    # The directory where the TSM storage engine stores TSM files.
    # 存放数据库的源数据wal
    dir = "/usr/local/influxdb/data"

    # The directory where the TSM storage engine stores WAL files.
    # 存放预写日志文件
    wal-dir = "/var/lib/influxdb/wal"
[[graphite]]
    # Determines whether the graphite endpoint is enabled.
    enabled = true
    database = "jmeter"    # 数据库名称
    retention-policy = ""
    bind-address = ":2003"    # 端口
    protocol = "tcp"
    consistency-level = "one"
#修改HTTP端口信息
[http]
    # Determines whether HTTP endpoint is enabled.
    enabled = true

    # The bind address used by the HTTP service.
    bind-address = ":8086"

启动influxd服务:

[root@localhost ~]# influxd &  

#influxDB的tcp端口:8088
#查看端口有没有起来:

[root@localhost ~]# netstat -anp|grep 8088

influxDB数据库操作:

[root@jmeter ~]# influx    # 登录数据库
Connected to http://localhost:8086 version 1.6.0
InfluxDB shell version: 1.6.0
> show databases    # 查看数据库
name: databases
name
----
_internal
jmeter
> create database "jmeter"    # 创建数据库
> use jmeter    #切换数据库
Using database jmeter
> create user "admin" with password '123456' with all privileges 

开启需要用到的端口:

[root@localhost ~]# firewall-cmd --zone=public --add-port=8086/tcp --permanent
success
[root@localhost ~]# firewall-cmd --zone=public --add-port=2003/tcp --permanent
success
[root@localhost ~]# firewall-cmd --zone=public --add-port=8088/tcp --permanent
success
[root@localhost ~]# firewall-cmd --reload
success
 

2、Jmeter配置:  
创建一个测试计划,并添加监听器-Backend Listenter,Backend Listener implementation 选择org.apache.jmeter.visualizers.backend.graphite.GraphiteBackendListenerClient
  添加线程
  设置influxDB IP及端口
  运行测试,等待几秒看数据

93c9a8d4dfaea9f119e75632029d4dee.png

端口说明:

2003端口:Jmeter往数据库发数据的端口

8086端口,Grafana从数据库取数据的端口

查看Jmeter数据库的表信息:

[root@jmeter ~]# influx
Connected to http://localhost:8086 version 1.6.0
InfluxDB shell version: 1.6.0
> show measurements
ERR: database name required
Warning: It is possible this error is due to not setting a database.
Please set a database with the command "use ".
> show databases
name: databases
name
----
_internal
jmeter
> use jmeter
Using database jmeter
> show measurements
name: measurements
name
----
jmeter.all.a.avg
jmeter.all.a.count
jmeter.all.a.max
jmeter.all.a.min
jmeter.all.a.pct90
jmeter.all.a.pct95
jmeter.all.a.pct99
jmeter.all.h.count
jmeter.all.ko.avg
jmeter.all.ko.count
jmeter.all.ko.max
jmeter.all.ko.min
jmeter.all.ko.pct90
jmeter.all.ko.pct95
jmeter.all.ko.pct99
jmeter.all.ok.avg
jmeter.all.ok.count
jmeter.all.ok.max
jmeter.all.ok.min
jmeter.all.ok.pct90
jmeter.all.ok.pct95
jmeter.all.ok.pct99
jmeter.all.rb.bytes
jmeter.all.sb.bytes
jmeter.test.endedT
jmeter.test.maxAT
jmeter.test.meanAT
jmeter.test.minAT
jmeter.test.startedT

这个时候已经可以将统计数据成功发送到InfluxDB

补充:
可以将JMeter-InfluxDB-Writer-plugin-1.2.jar放到jmeter的lib\ext目录下,这时可以选择:

57cfe217fed827bc11d64f839cd3d81e.png

3、Grafana和influxDB数据源配置  

安装Grafana:  

官网:https://grafana.com/grafana/download

下载地址:

https://s3-us-west-2.amazonaws.com/grafana-releases/release/grafana-5.2.1-1.x86_64.rpm

安装:rpm -ivh grafana-5.2.1-1.x86_64.rpm

(如果提示:
警告:grafana-5.2.1-1.x86_64.rpm: 头V4 RSA/SHA1 Signature, 密钥 ID 24098cb6: NOKEY
错误:依赖检测失败:
fontconfig 被 grafana-5.2.1-1.x86_64 需要  
urw-fonts 被 grafana-5.2.1-1.x86_64 需要

执行命令:

[root@localhost ~]#  yum install fontconfig freetype* urw-fonts -y

后,再进行安装)      启动  

[root@jmeter ~]# service grafana-server start
    Starting Grafana Server: ... [ OK ]  

开启3000访问端口:

[root@bogon benben]# firewall-cmd --zone=public --add-port=3000/tcp --permanent
success
[root@bogon benben]# firewall-cmd --reload
success
        

浏览器访问:http://IP:3000/login
grafana的默认用户名密码都是admin,第一次登录会要求更改密码

c2a79c94a4b2789afed93d848a7bab66.png

创建influxDB数据源

816545700c2b57b3aa07f7b14d2dcdea.png

bed8d45a6d539f0519ff07ad6b889261.png

2d19ad23a911d3472d6c276619c640d1.png

单击save & Test,提示:data source is working,说明保存和连接成功

63c49010cf8e5b26e99c14db947cd417.png

创建dashboard

04e6ea407ba23533e3d1dceb283f765c.png

新建Graph面板

5254e047f324e45063cc8e43b2e47d81.png

数据绑定

fc4faf22e825ca32464481209b0d6e14.png

选择influxdb的数据源库名,jmeter的相关表

f56849d2481ef785721f0b18df0e1239.png

定义显示的名称

278b5c6dce383e05f8bc26f0a8bfaad4.png

保存数据模板、直接按ctrl+s或点击保存按钮

9ecd48736e1411547603e9f8ae306e19.png

45e51de43b10508fee8043afe758ca02.png

说明:想要了解这些监控都代表什么意思,可以访问Jmeter的官网地址去查看阅读“http://jmeter.apache.org/usermanual/realtime-results.html”

线程数/用户相关指标
test.minAT-Min active threads:最小活跃线程数
test.maxAT-Max active threads:最大活跃线程数
test.meanAT-Mean active threads:活跃线程数
test.startedT-Started threads:启动线程数
test.endedT-Finished threads:结束线程数
响应时间指标
.ok.count:采样器的成功响应数
.h.count:每秒点击数
.ok.min:采样器成功最短响应时间
.ok.max:采样器成功最长响应时间
.ok.avg:采样器成功平均响应时间
.ok.pct:采样器成功响应百分比
.ko.count:采样器失败响应数
.ko.min:采样器失败的响应最短时间
.ko.max:采样称失败最长响应时间
.ko.avg:采样器失败平均响应时间
.ko.pct:采样器失败响应百分比
.a.count:采样器响应数(ok.count和ko.count的总和)
.a.min:采样器最小响应时间(ok.count和ko.count的最小值)
.a.max:采样器最大响应时间(ok.count和ko.count的最大值)
.a.avg:采样器平均响应时间(ok.count和ko.count的平均值)
.a.pct:采样器响应百分比(根据和失败样本的总数计算)
Backend Listener的默认百分位设置为“90;95;99”,即百分位数为90%,95%和99%。
Graphite使用点(“.”)去拆分的元素,这可能与十进制百分位值混淆。JMeter转换任何此类值,用下划线(“ - ”)替换点(“.”)。例如,“99.9 ”变为“99_9 ”
默认情况下,JMeter发送在samplerName“all”下累计的所有采样器的指标。如果配置了 Ba
导入Dashboard模版

从Grafana官网下载相应的模板
官网模版库:https://grafana.com/dashboards
搜索看板模版

aa6f664caff005595cd21d0519813b9b.png

下载:jmeter load test

249340948b3f12a0e97f9e6b019afcf4.png

d098983a4017c30a8307664c214bee0a.png

下载的jar包复制到jmeter的/lib/ext下面

导入模板

479ffaa868dfadf77648c69187424ae3.png

加载模板文件,将下载的json文件打开,将源码复制粘贴到第二个框中

85ff80a68f47eafdbda6491c3c537c57.png

选择模板数据源

421523493f17cd9f6fff6fdb91612be3.png

重启jmeter,再添加一个后置处理器-Backend Listener,选择rocks.nt.apm.jmeter.JMeterinfluxDBBackendListenerClient,输入influxDB的host和端口,之前创建用户名和密码

6e5e8387501713c2a355b48538eb4116.png

压测的效果图

e62e14b940ae71a1cb357c3f2561b990.png


以上为centos系统上的安装方法,以下为ubuntu系统的安装方法:

1、Influxdb下载和安装:     

wget https://dl.influxdata.com/influxdb/releases/influxdb_1.2.4_amd64.deb (如果在线下载慢,可以先下载到本机,再上传到centos系统)

sudo dpkg -i influxdb_1.2.4_amd64.deb

2、Grafana下载和安装:

wget https://s3-us-west-2.amazonaws.com/grafana-releases/release/grafana_5.1.3_amd64.deb   (如果在线下载慢,可以先下载到本机,再上传到centos系统)
sudo apt-get install -y adduser libfontconfig
sudo dpkg -i grafana_5.1.3_amd64.deb
启动服务:
sudo service grafana-server start

END

时光,在物转星移中渐行渐远,春花一梦,流水无痕,没有在最想做的时候去做的事情,都是人生的遗憾。人生需要深思熟虑,也需要一时的冲动。

9d38b8fc40ccd34a9df825143542aed9.gif

6d720f9d698680271b7e737533be6b5e.png

9d38b8fc40ccd34a9df825143542aed9.gif

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
要在Mac上搭建JMeter性能测试平台,需要进行以下步骤: 1. 安装Java JDK 首先需要在Mac上安装Java JDK,可以在Oracle官网上下载最新版本。 2. 安装JMeter 可以在JMeter官网上下载最新版本的JMeter,下载后解压缩即可。 3. 安装MySQL 可以在MySQL官网上下载最新版本的MySQL,安装完成后需要创建一个数据库用于存储JMeter执行的测试结果。 4. 安装InfluxDB 可以在InfluxDB官网上下载最新版本的InfluxDB,安装完成后需要创建一个数据库用于存储JMeter执行的测试结果。 5. 安装Grafana 可以在Grafana官网上下载最新版本的Grafana,安装完成后可以通过Web界面进行数据可视化。 6. 配置JMeter 需要在JMeter的bin目录下找到jmeter.properties文件,将以下配置项的值修改为相应的值: ``` # JMeter结果输出到InfluxDB jmeter.save.saveservice.output_format=influxdb jmeter.save.saveservice.hostname=<InfluxDB服务器IP> jmeter.save.saveservice.port=<InfluxDB服务器端口> jmeter.save.saveservice.db=<InfluxDB数据库名称> jmeter.save.saveservice.username=<InfluxDB用户名> jmeter.save.saveservice.password=<InfluxDB密码> # JMeter从MySQL加载数据 jmeter.save.saveservice.autoflush=true jmeter.save.saveservice.thread_counts=true jmeter.save.saveservice.sample_count=true jmeter.save.saveservice.time=true jmeter.save.saveservice.timestamp_format=yyyy/MM/dd HH:mm:ss.SSS jmeter.save.saveservice.label=true jmeter.save.saveservice.response_code=true jmeter.save.saveservice.response_data=false jmeter.save.saveservice.response_data.on_error=false jmeter.save.saveservice.bytes=true jmeter.save.saveservice.sent_bytes=true jmeter.save.saveservice.url=true jmeter.save.saveservice.filename=false jmeter.save.saveservice.hostname=true jmeter.save.saveservice.thread_name=true jmeter.save.saveservice.successful=true jmeter.save.saveservice.assertions=true jmeter.save.saveservice.latency=true jmeter.save.saveservice.connect_time=true jmeter.save.saveservice.sent_bytes=true jmeter.save.saveservice.idle_time=true jmeter.save.saveservice.timestamp_format=yyyy/MM/dd HH:mm:ss.SSS jmeter.save.saveservice.timestamp_format=yyyy/MM/dd HH:mm:ss.SSS jmeter.save.saveservice.timezone=Asia/Shanghai jmeter.save.saveservice.jdbc.url=<MySQL数据库URL> jmeter.save.saveservice.jdbc.driver=com.mysql.jdbc.Driver jmeter.save.saveservice.jdbc.username=<MySQL用户名> jmeter.save.saveservice.jdbc.password=<MySQL密码> ``` 7. 执行测试计划 执行JMeter测试计划后,结果会被自动保存到InfluxDB中。 8. 可视化数据 在Grafana中添加InfluxDB数据源,选择保存的数据库,即可通过图表展示测试结果。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值