性能工具之JMeter+InfluxDB+Grafana可视化实时监控服务
1.概述
Jmetr做性能测试过程中,数据的展示是一块短板,不够直观。因此我们以性能测试中监控模型为目标,部署第一个可视化监控项目。
2.部署版本
Grafana v6.2.5
InfluxDB 1.7.0
JMeter 5.2.1
3.可视化监控平台组件原理
1.JMeter引入Backend Listener,用于在压测过程中实时发送统计指标数据给时序数据库Influxdb,通过配置Grafana(开源的WEB可视化看板)数据源连接到Influxdb,我们就可以创建炫酷的可视化看板,并可以实时获取到测试指标数据。
4.部署流程
4.1部署Influxdb
Influxdb简介
时序数据库:处理带时间标签(按照时间的顺序变化,即时间序列化)的数据,带时间标签的数据也称为时间序列数据。想象它就像一个sql表,其中时间是它的主键
InfluxDB:是一款用Go语言编写的开源分布式时序、事件和指标数据库,无需外部依赖。该数据库现在主要用于存储涉及大量的时间戳数据,如DevOps监控数据,APP metrics, loT传感器数据和实时分析数据。
4.1.1.下载Influxdb
# 1.进入到/usr/local 路径下
# 2.下载influxdb包
wget -c https://dl.influxdata.com/influxdb/releases/influxdb-1.7.0.x86_64.rpm --no-check-certificate
4.1.2.安装
yum localinstall influxdb-1.7.0.x86_64.rpm
4.1.3.配置
安装完之后,生成默认的配置文件 /etc/influxdb/influxdb.conf,在配置文件前先对配置做备份,避免修改错误重新安装。
# 1.备份配置文件
cd /etc/influxdb
cp influxdb.conf ./influxdb.conf_back#2.修改influxdb.conf配置文件[[graphite]]
# Determines whether the graphite endpoint is enabled.
enabled = true
database = "jmeter" # 数据库名称
retention-policy = ""
bind-address = ":2003" # 端口
protocol = "tcp"
consistency-level = "one"修改以下信息
[meta]
dir = "/usr/local/influxdb/meta" #存放最终存储的数据,文件以.tsm结尾
[data]
dir = "/usr/local/influxdb/data" #存放数据库元数据 wal
wal-dir = "/usr/local/influxdb/wal" #存放预写日志文件修改HTTP端口信息
[http]
# Determines whether HTTP endpoint is enabled.
enabled = true# The bind address used by the HTTP service.
bind-address = ":8086"修改完成后,保存退出即可。
4.1.4.创建Influxdb数据存储路径
在上一步中我们设置了存放数据的目录为/usr/local/influxdb,这个目录不会自动生成,因此需要手动创建并授权,执行命令如下:
mkdir -p /usr/local/influxdb
chown -R influxdb:influxdb /usr/local/influxdb
4.1.5.启动influxDB服务
启动influxDB服务有两种方式:推荐第二种方式
第一种启动方式
直接执行命令: influxd -config /etc/influxdb/influxdb.conf
第二种启动方式
将配置文件添加到环境变量
#1.进入下面的文件
vi /etc/profile#2.配置环境变量,在文件末尾添加下面变量路径。
export INFLUXDB_CONFIG_PATH=/etc/influxdb/influxdb.conf#3.更新环境变量文件
source /etc/profile
启动InfluxDB
nohup influxd &
4.1.6.验证InfluxDB服务是否启动
influxDB的tcp端口是8088,执行:netstat -antp|grep 8088,显示如下则表示端口启动成功
4.1.7.创建InfluxDB数据库
#1.登录数据库
influx#2.查看所有数据库
show databases#3.创建Jmeter数据库
CREATE DATABASE "jmeter"#4.切换数据库
use jmeter#5.创建管理员权限的用户
CREATE USER "admin" WITH PASSWORD 'admin' WITH ALL PRIVILEGES
4.2.Jmeter配置Backend Listener
新建一个测试计划,新建一个线程组,右键测试计划选择Add->Listener->Backend Listener,如果使用的是中文则添加后端监听器的路径是:右键测试计划选择添加->监听器->后端监听器
端口说明:
- 8086端口,Grafana用来从数据库取数据的端口
- 2003端口,JMeter往数据库发数据的端口
运行线程组几秒钟,查看influxDB的jmeter数据库measurements 表中有下面的数据显示,则表示Jmeter的数据发送到InfluxDB成功。
show databases
use jmeter
show measurements
4.3.安装配置grafana
4.3.1.下载安装
# 1.下载Grafana包
wget -c https://dl.influxdata.com/influxdb/releases/influxdb-1.7.0.x86_64.rpm --no-check-certificate#2.安装
yum localinstall grafana-5.2.1-1.x86_64.rpm
4.3.2.启动
service grafana-server start
4.3.3.访问Grafana主页
使用浏览器打开 http://IP:3000/login,访问Grafana主页
第一次访问账号是admin 密码是admin,输入后会让输入新的密码,可以继续使用admin,也可以设置新的密码。如果设置新的密码一定要记住,下面配置数据源会用到。
4.3.4.配置InfluxDB数据源