版本信息:
1. Jmeter5.1.1 2. InfluxDB1.8.0 3. grafana8.1.3
一、概述 本文我们从零开始搭建JMeter+InfluxDB+Grafana压测可视化实时监控。
二、工具下载安装准备
1. JMeter的下载安装:点击这里
2. InfluxDB的下载与安装:
2.1、安装要求:
网络端口 InfluxDB默认使用以下网络端口:
- TCP端口8086用于通过InfluxDB的HTTP API进行客户端-服务器通信
- TCP端口8088用于RPC服务以进行备份和还原
- 除了上面的端口,InfluxDB还提供了多个可能需要自定义端口的插件。可以通过配置文件修改所有端口映射,配置文件默认位置:/etc/influxdb/influxdb.conf
网络时间协议(NTP) InfluxDB使用主机的UTC本地时间为数据分配时间戳并用于协调目的。使用网络时间协议(NTP)同步主机之间的时间; 如果主机的时钟与NTP不同步,写入InfluxDB的数据的时间戳可能不准确。
2.2、下载安装InfluxDB
wget https://dl.influxdata.com/influxdb/releases/influxdb-1.8.0.x86_64.rpm
sudo yum localinstall influxdb-1.8.0.x86_64.rpm
2.3、修改InfluxDB配置
vi /etc/influxdb/influxdb.conf
Jmeter使用graphite协议去写入数据到InfluxDB,因此,我们需要在InfluxDB配置文件启用它,修改选项如下:
[[graphite]]
enabled = true
bind-address = ":2003"
database = "jmeter"
retention-policy = ""
protocol = "tcp"
batch-size = 5000
batch-pending = 10
batch-timeout = "1s"
consistency-level = "one"
separator = "."
udp-read-buffer = 0
修改后保存。
2.4、启动InfluxDB有以下两种方法:
1.使用config选项将进程指向正确的配置文件
influxd -config /etc/influxdb/influxdb.conf
2.将环境变量设置为INFLUXDBCONFIGPATH配置文件的路径并启动
echo $INFLUXDB_CONFIG_PATH
/etc/influxdb/influxdb.conf
influxd
启动成功如图:
2.5、InfluxDB创建数据库与管理员的操作
[root@localhost ~]# influx -precision rfc3339 #进入数据库(首先使用:influxd 命令启动数据库,再复制一个连接输入:influx -precision rfc3339 )
Connected to http://localhost:8086 version 1.8.0
InfluxDB shell version: 1.8.0
> show databases #查看所有数据库
name: databases
name
----
_internal
> CREATE DATABASE "jmeter" #创建数据库
> use jmeter #切换进入刚创建的数据库
Using database jmeter
> CREATE USER "admin" WITH PASSWORD 'admin' WITH ALL PRIVILEGES # 创建管理员权限的用户与密码
2.6、JMeter配置发送数据至InfluxDB
- 创建一个测试计划,并添加Backend Listener
- 设置InfluxDB IP及端口
- 运行测试,等待几秒
- 进入到刚刚创建的jmeter数据库中输入:show measurements 查看是否出现如图数据,出现就表示Jmeter运行的统计指标数据能成功发送至InfluxDB
三、Grafana&InfluxDB集成
1、Grafana下载与安装
wget https://s3-us-west-2.amazonaws.com/grafana-releases/release/grafana-enterprise-8.1.3-1.x86_64.rpm
sudo yum localinstall grafana-enterprise-8.1.3-1.x86_64.rpm
2、启动Grafana
service grafana-server start #启动
service grafana-server stop #停止
3、启动成功,浏览器打开:http://服务器ip:3000/login 访问Grafana主页
【Grafana默认账号密码都是:admin】4、创建InfluxDB数据源
5、导入创建dashboard
5.1、点击这里去复制模板ID
5.2、进入Grafana去导入模板
导入成功如图:
6、可自己配置查询条件展示数据
线程数/用户相关指标 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