Jmeter +InfluxDB +collectd +Grafana(十六)

虚拟机ip 192.168.180.128

  

Influxdb

Influxdb是一个开源的分布式时序、时间和指标数据库,使用go语言编写,无需外部依赖。
它有三大特性:
  1. 时序性(Time Series):与时间相关的函数的灵活使用(诸如最大、最小、求和等);
  2. 度量(Metrics):对实时大量数据进行计算;
  3. 事件(Event):支持任意的事件数据,换句话说,任意事件的数据我们都可以做操作。

同时,它有以下几大特点:

  1. schemaless(无结构),可以是任意数量的列;
  2. min, max, sum, count, mean, median 一系列函数,方便统计;
  3. Native HTTP API, 内置http支持,使用http读写;
  4. Powerful Query Language 类似sql;
  5. Built-in Explorer 自带管理工具。

Influxdb安装

官方安装文档:https://docs.influxdata.com/influxdb/v1.4/introduction/installation/

官网:https://portal.influxdata.com/downloads

在讲解具体的安装步骤之前,先说说influxdb的两个http端口:8083和8086
 
 
 
 
  • port 8083:管理页面端口,访问localhost:8083可以进入你本机的influxdb管理页面;
  • port 8086:http连接influxdb client端口,一般使用该端口往本机的influxdb读写数据。

1. 安装InfluxDB(方式一,官方文档安装方式)


新建InfluxDB下载源

输入  cat << EOF | tee /etc/yum.repos.d/influxdb.repo

[influxdb]
name = InfluxDB Repository - RHEL \$releasever
baseurl = https://repos.influxdata.com/rhel/\$releasever/\$basearch/stable
enabled = 1
gpgcheck = 1
gpgkey = https://repos.influxdata.com/influxdb.key
EOF


1
2
3
使用yum下载InfluxDB
 
yum install -y influxdb

1
 

2. 安装InfluxDB(方式二)

下载rpm包

wget https://s3.amazonaws.com/influxdb/influxdb-race-nightly-1.x86_64.rpm

 安装好之后 解压
[root@Lamw usr]# rpm -ivh influxdb-race-nightly-1.x86_64.rpm
如果提示
chown: cannot access `/var/lib/influxdb': No such file ordirectory
chown: cannot access `/var/log/influxdb': No such file ordirectory
就先建立目录然后再安装
[root@Lamw usr]#  mkdir -p /var/lib/influxdb
[root@Lamw usr]#  mkdir -p /var/log/influxdb
  查看rpm -qa|grep influxdb     安装成功与否 

 然后  rpm -ql influxdb-1.4.2-1.x86_64 查看安装路径 

 这边因为 按照网上教程说的/etc/init.d/influxdb start  启动  小七这边 没有init.d这个目录(貌似是因为官方1.4版本的移除了web页面)     可忽略这句
所以按照上面的方式找到了启动路径
 发现  /usr/lib/influxdb/scripts/influxdb.service   这里有个启动路径
然后进入到 scripts 目录下  cat 查看这个启动文件

执行启动命令 /usr/bin/influxd -config /etc/influxdb/influxdb.conf $INFLUXD_OPTS

打开浏览器,访问虚拟机IP“http://192.168.180.128:8086/”

启动成功之后 会发现 访问的时候 提示 404 page not found 不用着急 因为只部署一个influxdb是无法在web页面监控到的(官方1.2以上都移除了web页面监控)

可以通过检查端口查看是否启动成功

[root@Lamw scripts]#  netstat -tlnpu |grep influxd

如果还出现访问不了的情况,可以检查下防火墙是否关闭。如未关闭,关闭防火墙之后 再尝试。

  

3. 修改配置

修改InfluxDB的配置,主要配置jmeter存储的数据库与端口号,还有需要将UI端口开放,   找到 [http] 、 [[graphite]]节点,enabled改为true(默认是开启的),bind-address修改绑定的IP和端口:

1
[root@Lamw ~]# vi /etc/influxdb/influxdb.conf

1
2
3
4
5
6
7
# 找到graphite并且修改它的库与端口
[[graphite]]
  enabled = true
  database = "jmeter"
  bind-address = ":2003"
  protocol = "tcp"
  consistency-level = "one"<br>原图:

1
修改如下:

1
 

# [http]

#Determines whether HTTP endpoint is enabled.

enabled= true

# The bindaddress used by the HTTP service.

bind-address= ":8086"          此处配置的IP和端口供grafana连接使用

1
修改后

1
2
3
4
5
6
7
8
9
10
11
12
13
# 找到admin,将前面的#号去掉,开放它的UI端口
[admin]
  # Determines whether the admin service is enabled.
  enabled = true
 
  # The default bind address used by the admin service.
  bind-address = ":8083"
 
  # Whether the admin service should use HTTPS.
  # https-enabled = false
 
  # The SSL certificate used when HTTPS is enabled.
  # https-certificate = "/etc/ssl/influxdb.pem

  

4. 安装collectd(可有可无,小七装了之后没启用)

# yum install epel-release -y
# yum install -y collectd

启动collectd:

# service collectd start
# service collectd status

5. 安装Grafana

使用yum下载Grafana并且安装

1
yum install https://grafanarel.s3.amazonaws.com/builds/grafana-3.0.1-1.x86_64.rpm

  

启动Grafana

1
[root@Lamw usr]# /etc/init.d/grafana-server restart

  

打开浏览器,访问虚拟机IP“http://192.168.180.128:3000

输入用户名,密码登录系统。用户名与密码都是"admin"

添加需要展示数据的数据库(配置InfluxDB )

添加InfluxDB数据库配置。输入帐号密码“admin / admin”,点击“add”添加之后点击“Test & Save” 提示“Success”说明成功了

【注意】URL的端口是8086,而刚才配置的8083是UI的端口。

- 8083端口是InfluxDB的UI界面展示的端口

- 8086端口是Grafana用来从数据库取数据的端口

- 2003端口则是刚刚设置的,Jmeter往数据库发数据的端口

6. 下面来配置JMeter

1
1. jmeter中,添加“监听器 -> Backend Listener”

  

顺便添加个http请求

能正常跑通之后,即可在Grafana中查看到数据,下面来配置Grafana从数据库中读取数据来展示

7. 配置Grafana

添加一个展示项目

点击“Home -> New”

  

添加一个图表

点击旁边的绿点“Add Panel -> Graph”

  

配置图表

配置好了,就能看到图了。如果看不到图,请用Jmeter多发几次请求。下图中选择监控的选项,可以在Jmeter的官网上查看到对应的解释。

  

点击Edit设置需要展示的数据 比如 tps 线程数  rt cpu ......等等

  

名称 描述
jmeter.all.h.count 所有请求的TPS
jmeter.<请求名称>.h.count 对应<请求名称>的TPS
jmeter.all.ok.pct99 99%的请求响应时间
jmeter.<请求名称>.ok.pct99 对应<请求名称>99%的请求响应时间
jmeter.all.test.startedT 线程数

【注意】如果要监控<请求名称>的话,Jmeter上的“Backend Listener”修改如下参数

1. 将“summanyOnly”修改成False,

2. 将“userRegexpForSamplersList”修改成True,

3. 并且要设置“samplersList”的值,“samplersList”是可以支持正则表达式的,“samplersList”的设置要与请求对应,否则找不到该请求。如图

设置好了,运行一下,在Grafana里面,就可以看到自己的请求了

Jmeter的官网地址去查看阅读“http://jmeter.apache.org/usermanual/realtime-results.html” 详细了解更多监控信息

Graph里面的选项有:

General(常规选择)、Metrics(指标)、Axes(坐标轴)、Legend(图例)、 Display(显示样式)、Time range(时间范围)

Genera(常规选择):添加图形标题,图形宽度高度等

Title:仪表板上的面板标题

Span:列在面板中的宽度

Height:面板内容高度(以像素为单位)

钻取/详细信息链接(Drilldown / detail link)

钻取部分允许添加动态面板的链接,可以链接到其他仪表板或URL。

每个链接都有一个标题,一个类型和参数。链接可以是 dashboard或 absolute链接。如果它是一个仪表板链接, dashboard值必须是一个仪表板的名字。如果这是一个 absolute链接,是URL链接的URL。

params允许添加额外的URL参数的链接。格式是 name=value与多个参数分开,当链接到另一个仪表板使用模板变量,你可以使用 var-myvar=value填充模板变量的期望值链接。

Metrics(指标)

定义了来源数据的呈现,每个数据源都提供不同的选择。面板的来源数据通过group,host,application,item从zabbix中获得。

Axes(坐标轴)

用于坐标轴和网格的显示方式,包括单位,比例,标签等。

Left Y和 Right Y可以定制使用,因其中的可选参数太多,请在使用的时候参考官方文档

Legend(图例):图例展示

图例的参数:

Total:返回所有度量查询值的总和

Current:返回度量查询的最后一个值

Min:返回最小的度量查询值

Max:返回最大的度量查询值

Avg:返回所有度量查询的平均值

Decimals:控制Legend值的多少,以小数显示悬浮工具提示(图)

Grafana 中Legend值的计算取决于你使用的度量查询方式和什么样类型的聚合或合并点来实现的,所有上述所说的值在同一时间可能都是不正确的。例如,如果你是每秒请求一次,这可能是使用平均值来作为一个整合,然而这个Legend值不会代表请求的总数。这只是Grafana收到的所有数据点的总和。

Display(显示样式)

显示样式的控件属性图如下:

图表模式(Draw Modes)

Bar:一个条形图显示值

Lines:显示线图值

Points:显示点值

选择模式(Mode Options)

Fill:系列的颜色填充,0是没有。

Line Width:线的宽度。

Staircase:楼梯状显示。

如果有多个选择项,它们可以作为一个群体显示。

叠加和空值(Stacking & Null value)

Stack:每个系列是叠在另一个之上

Null value:空值

如果你启用了堆栈可以选择应该显示鼠标悬停功能。

Time range(时间范围)

更多Grafana功能请查阅官方文档....

 
分类: Jmeter

Jmeter +InfluxDB +collectd +Grafana16的更多相关文章

  1. 性能测试监控:Jmeter +InfluxDB +collectd +Grafana

    虚拟机ip 192.168.180.128 Influxdb Influxdb是一个开源的分布式时序.时间和指标数据库,使用go语言编写,无需外部依赖. 它有三大特性: 时序性(Time Series ...

  2. Jmeter+ InfluxDB+Grafana安装配置

    前置条件: 系统:windows jmeter:5.1 InfluxDB安装 下载InfluxDB-v1.7.9和Chronograf-v1.7.14(InfluxDB的可视化web端). 下载完成之 ...

  3. 性能工具之JMeter+InfluxDB+Grafana打造压测可视化实时监控【转】

    概述 本文我们将介绍如何使用JMeter+InfluxDB+Grafana打造压测可视化实时监控. 引言 我们很多时候在使用JMeter做性能测试,我们很难及时察看压测过程中应用的性能状况,总是需要等 ...

  4. jmeter+influxdb+grafana性能测试监控

    背景: 话说Jmeter原生的监控确实太丑了,听大佬们在讨论Jmeter+InfluxDb+Grafana的监控,于是,为了有一个漂亮的测试报告,就手动开始进行部署. 安装步骤: 1.influxdb ...

  5. influxDB1.6版安装与配置(windows环境)、Jmeter+influxDB+Grafana性能监控

    influxDB1.6版安装与配置(windows环境).Jmeter+influxDB+Grafana性能监控 来源:https://blog.csdn.net/SwTesting/article/ ...

  6. Centos7 搭建Grafana+Jmeter+Influxdb 性能实时监控平台

    未完,待更新 背景 日常工作中,经常会用到Jmeter去压测,毕竟LR还要钱(@¥&*...),而最常用的接口压力测试,我们都是通过聚合报告去查看压测结果的,然鹅聚合报告的真的是丑到家了,作为 ...

  7. 全网最详细!Centos7.X 搭建Grafana+Jmeter+Influxdb 性能实时监控平台

    背景 日常工作中,经常会用到Jmeter去压测,毕竟LR还要钱(@¥&*...),而最常用的接口压力测试,我们都是通过聚合报告去查看压测结果的,然鹅聚合报告的真的是丑到家了,作为程序猿这当然不 ...

  8. Centos7.X 搭建Grafana+Jmeter+Influxdb 性能实时监控平台(不使用docker)

    工具介绍 [centos7安装influxDB] Influxdata官网下载路径:https://portal.influxdata.com/downloads/ 1.直接执行以下命令安装 2.安装 ...

  9. 搭建jmeter+influxdb+grafana压测实时监控平台(超详细,小白适用)

    1.前言 在使用jmeter做性能测试的时候,监控系统性能的时候,无论是使用插件还是报告生成,都没法实现实时监控.使用JMeter+Influxdb+Grafana可以实现实时监控. 本次环境搭建各软 ...

随机推荐

  1. [USACO4.1]篱笆回路Fence Loops

    题目:USACO Training 4.1(在官网上提交需加文件输入输出).洛谷P2738. 题目大意:给你一张图里的边集,让你求出这张图的最小环. 解题思路:求最小环很简单,用Floyd即可.最重要 ...

  2. LAMP环境搭建备忘 -- MariaDB 安装(三)

    因为 MySQL 的一些原因,在 Linux 平台上的开源数据库渐渐被 MariaDB 取代. MariaDB 安装命令如下图 安装成功后,接下来就启动这个数据库服务 我们还需要对数据库做一些初始化的 ...

  3. layui Layui-Select多选的使用和注意事项

    1.最近买了layadmin的后台框架,使用Layui-Select总结如下 A.配置:我采用的全局引入配置的方式 赋值(选中状态)

  4. OpenJDK源码研究笔记(二)-Comparable和Comparator2个接口的作用和区别(一道经典的Java笔试面试题)

    Comparable和Comparator是JDK中定义的2个比较接口,很相似,但又有所不同. 这2个接口的作用和区别也是Java中的常见经典面试题. 下面我们就来详细介绍下这2个接口的定义.作用.区 ...

  5. Python seed() 函数--每次产生一样的随机数系列

    import random random.seed( 10 ) print("Random number with seed 10 : ", random.random()) #0 ...

  6. [React] Refactor a Stateful List Component to a Functional Component with React PowerPlug

    In this lesson we'll look at React PowerPlug's <List /> component by refactoring a normal clas ...

  7. [Angular] Configure an Angular App at Runtime

    It always again happens (especially in real world scenarios) that you need to configure your Angular ...

  8. 2、Python列表和元组

    2.Python序列 序列是一种数据存储方式,类似于C语言的数组.简单的说序列是一块用来存储多个值的连续内存空间,同一个序列的元素通常是相关的. Python中常用的序列结构有列表.元组.字典.字符串 ...

  9. WET Dilutes Performance Bottlenecks

    WET Dilutes Performance Bottlenecks Kirk Pepperdine THE IMPORTANCE OF THE DRY PRINCIPLE (Don't Repea ...

  10. css3模糊图片

    image的css样式 filter: blur(10px); -webkit-filter: blur(10px); -moz-filter: blur(10px); -ms-filter: blu ...