Loading

influxdb+grafana+jmeter系统指标监控视图

Grafana

是一个开源的度量分析与可视化套件。经常被用作基础设施的时间序列数据和应用程序分析的可视化

官方支持以下数据源:Graphite,InfluxDB,OpenTSDB,Prometheus,Elasticsearch,CloudWatch和KairosDB

InfluxDB

InfluxDB是一个由InfluxData开发的开源时序型数据。它由Go写成,着力于高性能地查询与存储时序型数据。InfluxDB被广泛应用于存储系统的监控数据,IoT行业的实时数据等场景。

InfluxDB基本操作

https://www.jianshu.com/p/721e4ce4c066 

注:以下基于centOs安装

influxdb安装

yum install wget.x86_64
# 下载
wget https://dl.influxdata.com/influxdb/releases/influxdb-1.7.0.x86_64.rpm --no-check-certificate

# 安装
rpm -ivh influxdb-1.7.0.x86_64.rpm 

修改配置文件influxdb.conf

vi /etc/influxdb/influxdb.conf
[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"

启动服务

indfluxDB的tcp端口:8088 

# 启动端口
influxd &

# 查看端口是否启动
netstat -anp|grep 8088

操作数据库

[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

Grafana配置

 下载安装

# 下载
wget 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 需要

    执行命令:

yum install fontconfig freetype* urw-fonts -y

          后,再进行安装

启动Grafana服务

service grafana-server start

防火墙启用端口

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

浏览器访问

http://IP:30000/login

 初次登录:admin/admin

注:grafana的默认用户名密码都是admin,第一次登录会要求更改密码

添加jmeter相关Dashboard

自定义Grafana的dashboard

 

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


创建dashboard

创建Graph面板

数据绑定

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

定义显示名称

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

说明:想要了解这些监控都代表什么意思,可以访问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”下累计的所有采样器的指标。 如果配置了 BackendListenerSamplersList,那么JMeter还会发送匹配样本名称的指标,前提是配置 summaryOnly=true

Jmeter配置

创建后端监视器

 

添加线程
设置influxDB IP及端口
运行测试,等待几秒看数据 

 

端口说明

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 <database>".
> 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

 

import相关Dashboard

jmeter添加jar包

将JMeter-InfluxDB-Writer-plugin-1.2.jar放到jmeter的lib\ext目录下

链接:https://pan.baidu.com/s/1SFHoEulaKqFIhhLU9UnskA
提取码:my5x 

 

导入Dashboard模板

https://grafana.com/grafana/dashboards

Grafana官网-搜索jmeter的dashboard插件

 点击第一个模板

 可以看到id:5496

 jmeter配置

其他dashboard对应jmeter-后端监听器配置

Windows开放端口

虚拟机设置

 

 点击【确定】

windows防火墙开放端口

 

http://192.168.48.131:3000/login

posted @ 2020-10-12 21:26  Binzichen  阅读(437)  评论(0)    收藏  举报