在使用Jmeter做性能测试,监控系统性能的时候,无论是使用插件还是报告生成,都比较麻烦,而且样式看起来比较丑,所以使用Jmeter+Grafana+InfluxDB来打造压测可视化实时监控。

环境说明:

本次搭建都在Linux环境下进行,本篇文章使用到的安装包在”即可一键获取。

一、InfluxDB安装及使用

1、InfluxDB概念

InfluxDB是一款用Go语言编写的开源分布式时序、事件和指标数据库,无需外部依赖。该数据库现在主要用于存储涉及大量的时间戳数据,如DevOps监控数据,APP metrics, loT传感器数据和实时分析数据。

2、InfluxDB特点

InfluxDB的特点可以归纳为以下9个方面:

  • 无结构(无模式):可以是任意数量的列;
  • 可以设置metric的保存时间;
  • 支持与时间有关的相关函数(如min、max、sum、count、mean、median等),方便统计;
  • 支持存储策略:可以用于数据的删改。(influxDB没有提供数据的删除与修改方法);
  • 支持连续查询:是数据库中自动定时启动的一组语句,和存储策略搭配可以降低InfluxDB的系统占用量;
  • 原生的HTTP支持,内置HTTP API;
  • 支持类似sql语法;
  • 支持设置数据在集群中的副本数;
  • 支持定期采样数据,写入另外的measurement,方便分粒度存储数据。

3、InfluxDB安装

具体步骤如下:

①上传influxdb.rpm包到服务器;

②输入命令:yum localinstall influxdb.rpm,安装influxdb;

③启动服务:systemctl start influxdb;

④查看启动状态:systemctl status influxdb;

⑤输入influx,即可进入交互界面。

promthues监控数据库polodb 实时监控数据库_jmeter

 4、InfluxDB使用

①InfluxDB中创建数据库,使用命令:create database 数据库名。如下,创建一个名称为jmeter的数据库:create database jmeter。

promthues监控数据库polodb 实时监控数据库_数据库_02

  ②查看当前的数据库,使用命令:show databases;

promthues监控数据库polodb 实时监控数据库_memcached_03

 ③切换数据库,use database。

promthues监控数据库polodb 实时监控数据库_memcached_04

 ④创建用户名及密码,使用命令:

create user "root" with password "root" with all privileges。

promthues监控数据库polodb 实时监控数据库_jmeter_05

 ⑤查看用户,使用命令:show users。

promthues监控数据库polodb 实时监控数据库_jmeter_06

如果root权限显示为true,那么root的用户就创建好啦。

 二、Jmeter脚本配置

以下对Jmeter脚本进行配置,具体分为如下四步。

①打开jmeter,创建一个线程组,配置如下:

promthues监控数据库polodb 实时监控数据库_jmeter_07

 ②添加一个HTTP Request,压测地址为:www.baidu.com。

promthues监控数据库polodb 实时监控数据库_memcached_08

 ③添加一个Backend Listener,配置如下:

Backend Listener implementation选择influxdb;

influxdbURL 例"http://localhost:8086/write?db=jmeter"。

promthues监控数据库polodb 实时监控数据库_数据库_09

 ④配置完后运行一下Jmeter脚本,再去influxdb的jmeter数据库中查看是否有数据,有数据即配置成功。

promthues监控数据库polodb 实时监控数据库_memcached_10

 三、Grafana安装配置

1、Grafana安装

步骤如下:

①上传grafana.rpm包到服务器;

②安装Grafana,命令:yum localinstall grafana.rpm;

③启动服务,systemctl start grafana-server;

④查看启动状态,systemctl status grafana-server;

⑤启动后,在浏览器输入:http://ip:3000即可访问,效果如下:

promthues监控数据库polodb 实时监控数据库_jmeter接口测试_11

 2、Grafana登录

①Grafana登录页面,用户名密码默认为admin。

promthues监控数据库polodb 实时监控数据库_jmeter_12

 ②重置密码:根据自己需要重置密码或直接跳过。

promthues监控数据库polodb 实时监控数据库_jmeter_13

 3、Grafana数据源配置

①在主界面,依次点击Data Sources-->add data source。

promthues监控数据库polodb 实时监控数据库_接口测试_14

 选择“Add data source"添加数据源。

promthues监控数据库polodb 实时监控数据库_memcached_15

 ②数据源选择influxDB。

promthues监控数据库polodb 实时监控数据库_数据库_16

 ③输入ip和端口,InfluxDB信息。如果没做更改的话,user和pwd都是默认的root, 为了安全起见,可以自行修改。

promthues监控数据库polodb 实时监控数据库_数据库_17

 4、Grafana Dashboards导入InfluxDB Jmeter模板

①InfluxDB Jmeter模板下载地址:https://grafana.com/grafana/dashboards?search=influxdb

promthues监控数据库polodb 实时监控数据库_数据库_18

 ②点击Copy ID to Clipboard。

promthues监控数据库polodb 实时监控数据库_接口测试_19

 ③在Grafana首页,点击import。

promthues监控数据库polodb 实时监控数据库_jmeter_20

 ④将复制的ID粘贴。

promthues监控数据库polodb 实时监控数据库_接口测试_21

 ⑤DB name选择influxDB,点击Import。

promthues监控数据库polodb 实时监控数据库_memcached_22

 ⑥配置完成后,页面效果如下:

promthues监控数据库polodb 实时监控数据库_接口测试_23

 ⑦在页面右上角,下拉选择5s,即每5s更新一次。

promthues监控数据库polodb 实时监控数据库_jmeter接口测试_24

 ⑧运行jmeter脚本,查看监控数据。

promthues监控数据库polodb 实时监控数据库_数据库_25

 至此,整个Jmeter+Grafana+InfluxDB就搭建完成了,等着老板加鸡腿吧。

promthues监控数据库polodb 实时监控数据库_数据库_26