在做性能测试的时候,重点关注点是各项性能指标,用Jmeter工具,查看指标数据,就是借助于聚合报告,但查看时也并不方便。那如何能更直观的查看各项数据呢?可以通过InfluxDB+Grafana+Jmeter来实现数据的可视化。

讲到这里,可能会对 InfluxDB+Grafana 陌生些,没关系,后续会详细讲解。

我们先来看一张官网的配图,如下所示:

如上所示,这就是接下来一系列教程的最终效果了,数据可视化,可添加各种指标数据,是不是很不错。觉得不错那就一起一探究竟吧。

注意:环境搭建基于linux+docker

工具介绍

在介绍这三个工具前,还是来简单说下,三个工具各自的作用:

  • Jmeter:想必大家都很熟悉了,就不多说了,它在平台中扮演的角色是:采集数据

  • InfluxDB:Go 语言开发的一个开源分布式时序数据库,非常适合存储指标、事件、分析等数据;它在平台中扮演的角色是:数据存储

  • Grafana:纯 Javascript 开发的前端工具,用于访问 InfluxDB,自定义报表、显示图表等;它在平台中扮演的角色是:数据展示

看完简单介绍,是不是觉得比聚合报告强大多了。

InfluxDB介绍

官方网址:InfluxDB网址

官方文档:InfluxDB文档

  • 特色功能

1)基于时间序列,支持与时间有关的相关函数(如最大,最小,求和等);

2)可度量性:可以实时对大量数据进行计算;

3)基于事件:支持任意的事件数据。

  • 主要特点

1)无结构(无模式):可以是任意数量的列;

2)可拓展;

3)支持min, max, sum, count, mean, median 等一系列函数,方便统计;

4)原生的HTTP支持,内置HTTP API;

5)强大的类SQL语法;

6)自带管理界面,方便使用。

InfluxDB安装

自从在开发同学建议使用docker后,觉得配置环境真的太方便了,今天的博文内容,环境部署都是使用docker,需要注意下,我使用的不是虚拟机,是去年在阿里囤的个服务器,比虚拟机方便太多。

拉取镜像

使用命令 docker pull influxdb:latest 即可,简单。

运行容器

使用命令 docker run -itd -p 8086:8086 -p 2003:2003 -p 8083:8083 --name my_influxdb influxdb 即可,容器名字可自定义。

说明:

  • 8083端口:InfluxDB的UI界面展示的端口
  • 8086端口:Grafana用来从数据库取数据的端口
  • 2003端口:Jmeter往数据库发数据的端口

修改InfluxDB配置

容器操作

服务是docker启的,所以需要进入到容器内操作,进入容器命令如下所示:

docker exec -it influxdb_demo bash

我们进入到目录:cd /usr/bin,先生成配置文件,使用命令influxd config > /etc/influxdb/influxdb.conf 即可生成。

容器内没有vim命令,可以将文件拷贝到宿主机上进行编辑,使用命令docker cp -a 819e902a45f9:/etc/influxdb/influxdb.conf /home,将配置文件拷贝到home路径下。

配置graphite

我们来修改配置,主要是配置存储jmeter数据的数据库与端口号,使用命令vim influxdb.conf,找到graphite并且修改它的库与端口,修改如下所示:

配置http

找到http,将前面的#号去掉,我在配置时,配置文件的http是默认启用的,所以我这里是没有配置的

网上有帖子说配置admin的,我在配置时,也没有这个配置项,应该是版本更新了的原因。

配置文件拷贝到容器

配置修改好后,还得将文件拷贝到容器中,我们可以先将配置文件删除,再拷贝。操作命令docker cp -a /home/influxdb.conf 819e902a45f9:/etc/influxdb/influxdb.conf 即可。

重启服务

修改了配置文件,服务重启下,操作命令docker restart my_influxdb

配置数据库

在修改配置文件时,我们配置了一个数据库,这个数据库默认是没有的,需要手动创建下,我们依然进入到目录:cd /usr/bin

  • 文件结构

influxd # influxdb服务器
influx # influxdb命令行客户端
influx_inspect # 查看工具
influx_stress # 压力测试工具
influx_tsm # 数据库转换工具(将数据库从b1或bz1格式转换为tsm1格式)
  • 启动客户端

使用命令./influx 启动客户端,如下所示:

启动后,就可以输入对应的sql语句操作数据了。

创建数据库,使用命令create database "jmeter",创建后,我们可以用命令show databases查看数据库,如下所示:

创建人员,使用命令create user "用户名" with password '密码' with all privileges,创建好后,使用命令show users可以查看人员,如下所示:

  • 启动服务端

使用命令./influxd 启动服务端,如下所示:

InfluxDBStudio

服务搭建好之后,可能有博友有疑问了,数据如何查询呢?的确,我们配置好后,怎么查看数据库中的数据。

容器内查询

远程连接并进入容器中,启动influx,查询语法跟平时用的sql差不多,直接上图来看一下:

这是我之前用jmeter跑过数据了,所以可以查询到数据。没跑过,那自然是没有数据的。今天暂时不讲jmeter的使用,先把InfluxDB分享完,目前知道如何查询数据即可。

终端连接查询

我们在使用数据库,一般都会使用终端连接,比如:Navicat;我们用linux系统,也会选择用xshell或者SecureCRT连接一样,之前在github上找到个工具,下载地址

这个工具是windows上使用,下载下来,免安装,可以直接使用。

打开软件,新建连接,如下所示,界面很简洁:

我们点击新建按钮,就可以填写数据,创建连接了,如下所示:

建立连接的字段说明:

  • Name 名称 - 连接的名称。这是使用此连接时将看到的标签
  • Address 地址 - InfluxDB服务器的IP。端口默认即可
  • Database 数据库 - 用于连接的数据库。将其留空以列出所有数据库(需要管理员权限)
  • UserName 用户名 - 用于连接的InfluxDB用户名
  • Password 密码 - 与连接一起使用的InfluxDB密码
  • Security - Use SSL 使用SSL - 连接到InfluxDB时是否使用SSL安全性(HTTPS)

填写好字段数据后,我们可以点Test,测试下连接是否正常,如下界面说明连接成功:

我们连接好后,也就可以通过终端工具来查询数据了,如下所示:

效果跟容器内查询是一样的,只是终端方式更加便捷。这里需要注意的是,由于我使用的是阿里服务器,所以端口还需要在安全组中开放端口,这里是需要注意下的。

完成上述配置后,InfluxDB+Grafana+Jmeter性能监控平台的第一步也就完成了,操作起来是不是挺简单的,不动手觉得难,操作起来实际简单。

好了,今天就到这,下期见。

Docker系列——InfluxDB+Grafana+Jmeter性能监控平台搭建(一)的更多相关文章

  1. Docker系列——InfluxDB+Grafana+Jmeter性能监控平台搭建(三)

    在之前系列博文中,已经介绍完了数据采集和数据存储,那数据如何展示呢?所以今天就专门来讲下数据如何展示的问题. 以前博文参考: Docker系列--InfluxDB+Grafana+Jmeter性能监控 ...

  2. Docker系列——InfluxDB+Grafana+Jmeter性能监控平台搭建(二)

    在上一篇博文中,主要是讲了InfluxDB的配置,博文链接:https://www.cnblogs.com/hong-fithing/p/14453695.html,今天来分享下Jmeter的配置. ...

  3. grafana + influxdb + telegraf , 构建性能监控平台

    1.安装平台 1).grafana , 访问各类数据源 , 自定义报表.显示图表等等 , 用于提供界面监控 , 默认端口为3000 , 默认登陆信息admin wget https://grafana ...

  4. window平台基于influxdb + grafana + jmeter 搭建性能测试实时监控平台

    一.influxdb 安装与配置 1.1 influxdb下载并安装 官网无需翻墙,但是下载跳出的界面需要翻墙,我这里提供下载链接:https://dl.influxdata.com/influxdb ...

  5. cAdvisor0.24.1+InfluxDB0.13+Grafana4.0.2搭建Docker1.12.3 Swarm集群性能监控平台

    目录 [TOC] 1.基本概念 ​ 既然是对Docker的容器进行监控,我们就不自己单独搭建cAdvisor.InfluxDB.Grarana了,本文中这三个实例,主要以Docker容器方式运行. 本 ...

  6. 性能测试分享:jmeter性能监控(一)

    性能测试分享:jmeter性能监控(一) poptest是国内唯一一家培养测试开发工程师的培训机构,以学员能胜任自动化测试,性能测试,测试工具开发等工作为目标.如果对课程感兴趣,请大家咨询qq:908 ...

  7. [转帖] 基于telegraf, influxdb, grafana 建立 esxi 监控

    [系统集成] 基于telegraf, influxdb, grafana 建立 esxi 监控 https://www.cnblogs.com/hahp/p/7677420.html 之前在 nagi ...

  8. JMeter性能监控插件PerfMon Metrics Collector

    Jmeter性能监控插件由客户端插件和服务器端程序组成. 官方文档及插件下载地址https://jmeter-plugins.org/wiki/PerfMon/ 将插件 plugins-manager ...

  9. linux监控平台搭建-内存

    linux监控平台搭建-内存 上一篇文章说的硬盘.就写一下.更加重要的东西.在手机上面是RAM.机器是memory.内存是按照字节编址.每个地址的存储单元可以存放8bit的数据.cpu 通过内存地址获 ...

随机推荐

  1. 对模拟器虚假设备识别能力提升15%!每日清理大师App集成系统完整性检测

    前言 每日清理大师是一款智能便捷的手机清理软件,可快速清理无用缓存.垃圾文件和应用残留,还可深度清理如社交软件中的无用缓存等,有效解决手机卡顿.耗电快.内存不足等问题.每日清理大师App在结合了系统完 ...

  2. kubernetes实战-配置中心(一)configmap资源

    在我们的环境中测试使用configmap资源,需要先对我们的环境进行一些准备,首先将dubbo服务调整为0个pod ,然后把zookeeper进行拆分: 拆分zk环境,模拟测试环境跟生产环境: 停止z ...

  3. Leetcode(82)-删除排序链表中的重复元素 II

    给定一个排序链表,删除所有含有重复数字的节点,只保留原始链表中 没有重复出现 的数字. 示例 1: 输入: 1->2->3->3->4->4->5 输出: 1-&g ...

  4. 2019牛客多校第五场C generator 2(BSGS)题解

    题意: 传送门 已知递推公式\(x_i = a*x_{i - 1} + b\mod p\),\(p\)是素数,已知\(x_0,a,b,p\),给出一个\(n\)和\(v\),问你满足\(x_i = v ...

  5. Linux 驱动框架---设备文件devfs

    设备文件系统 Linux引入了虚拟文件系统,从而使设备的访问可以像访问普通文件系统一样.因此在内核中描述打开文件的数据inode中的rdev成员用来记录设备文件对应到的设备号.设备文件也由一个对应的f ...

  6. R语言学习2:绘图

    本系列是一个新的系列,在此系列中,我将和大家共同学习R语言.由于我对R语言的了解也甚少,所以本系列更多以一个学习者的视角来完成. 参考教材:<R语言实战>第二版(Robert I.Kaba ...

  7. Android vs iOS vs Web

    Android vs iOS vs Web UI view Android ViewGroup ImageView TextView iOS UIView ImageView TextView Web ...

  8. SEO All In One

    SEO All In One website SEO https://www.google.com/search?newwindow=1&safe=active&sxsrf=ALeKk ...

  9. how to config custom process.env in node.js

    how to config custom process.env in node.js process.env APP_ENV NODE_ENV https://nodejs.org/api/proc ...

  10. free online linux terminal & github cli online

    free online linux terminal & github cli online gitpod https://www.gitpod.io/features/ https://bc ...