使用Jmeter进行性能测试及性能监控平台搭建

目录

    • 一、性能测试基本概念
      • 1、为什么要做性能测试?
      • 2、什么是性能测试?
      • 3、常见性能压力测试工具
      • 4、JMeter 优点
      • 5、JMeter安装
    • 二、压测脚本的录制与编写
      • 一、JMeter配置
      • 二、浏览器配置
      • 三、录制与回放
    • 三、虚拟用户并发模拟
      • 1、Number Of Threads(users)
      • 2、Ramp-up Period(seconds):
      • 3、Loop Count:循环次数
      • 4、Specify Thread Lifttime:
      • 2,其他线程组
    • 四、压测结果分析
      • 一、Listener View Result Tree
      • 二、AggreGate Report
      • 三、Backend Listener
    • 五、Jmeter进行分布式压测
      • 一,分布式简介:
      • 二,工作节点(slave)部署
      • 三、控制节点(master)部署
    • 六、性能监控系统
      • 一、简介
      • 二、部署
        • 1、部署InfluxDB
        • 2、部署Grafana
    • 七、性能监控体系实战
      • 一、Prometheus简介
      • 二、部署Prometheus
      • 三,被测机安装node-exporter
      • 四,在Prometheus里添加exporter

一、性能测试基本概念

1、为什么要做性能测试?

  • 满足用户使用需求:网站访问量大崩溃, 12306 、微博、外卖
  • 最小化成本:新服务上线不知道部署多少台服务器
  • 评估应用系统性能,给运维做系统容量规划提供依据、给开发提供应用调优参考

2、什么是性能测试?

  • 模拟多个用户的操作对服务器硬件性能的影响
  • TPS(Transaction Per Second )每秒事物处理能力
  • RT( Response Time )响应时间

3、常见性能压力测试工具

  • Apache ab: HTTP 服务器性能基准工具。
  • Apache Jmeter:支持很多协议,开源免费,使用 Java 语言开发
  • LoadRunner :支持很多协议,收费软件,使用 C 语言开发
  • Locust:有 Web 界面,支持很多协议,开源免费,使用 Python 语言开发
  • nGrinder : Naver 公司基于 Grinder 开发的性能测试平台。 Grinder 是一个能运行jython (在 JVM 上运行的 Python )、 groovy 编写测试脚本的应用程序。免费软件,使用 lava 语言开发。 admin ) ‘运行 ngrinder-Controller.war ,默认账户与密码:admin

4、JMeter 优点

  • 入门简单,有图形调试界面
  • 使用 Java 语言开发,支持多操作系统平台
  • 插件机制,可以二次开发定制协议。可以使用三方开发者开发的协议支持

5、JMeter安装

  • 下载JDK
    下载地址: https://www. oracle.com/java/technologies/ oracle-java-archive-downloads.html
  • 添加环境变量
    Windows:
    *JAVA_HOME: C: \Program Files \Java\jdk1.8.0_144
    Path: %JAVA_HOME%\bin
    *macOS/Linux
    *JAVA_HOME=/usr/local/jdk1.8.0_144
    *export PATH=$(JAVA_HOME}/bin: $PATH
  • 下载jmeter
    下载地址:https://jmeter.apache.org/download_jmeter.cgi

二、压测脚本的录制与编写

一、JMeter配置

  • 添加 Recording Controller
    路径: Test Plan-> Thread Group->Add-> Logic Controller-> RecordingController
    使用Jmeter进行性能测试及性能监控平台搭建_第1张图片

二、浏览器配置

  • 在谷歌浏览器使用switchOmega设置Charles监听端口

  • 下载地址:https://proxy-switchyomega.com/

  • 安装:下载完成以后进入chrome浏览器-点击右上角“…”图标-点击更多根据-扩展程序-把刚刚下载的crx文件拖进来

  • 配置:装上后点击浏览器右上角扩展程序图标-选择omega小程序-点击选项进行配置-可以查看到这个页面,127.0.0.1默认是本地的,端口输入8888是因为我们在上图配置的默认端口就是8888
    使用Jmeter进行性能测试及性能监控平台搭建_第2张图片

  • 这里记得选择HTTP,否则会连不上!!

  • 接着,我们点击右上角的proxy工具,选择我们配置的代理,即可使用

  • 这个时候去访问网页会出现这个提示,是因为我们jemter代理目前没启动,是正常的,大家不要慌
    使用Jmeter进行性能测试及性能监控平台搭建_第3张图片

三、录制与回放

首先我们先来熟悉下jmeter页面的基础配置
使用Jmeter进行性能测试及性能监控平台搭建_第4张图片
1、HTTPS Domains:如果想要抓取http协议,这里可以不用配置,只有抓取https协议才需要配置,支持通配符
2、Target Controller:设置接收请求后要把参数写入的地方,默认是Use Recording Controller,支持选择其他配置
3、配置完后我们可以点击Start按钮进行启动,启动后它会自动的生成一个证书,并放在bin目录下
使用Jmeter进行性能测试及性能监控平台搭建_第5张图片
使用Jmeter进行性能测试及性能监控平台搭建_第6张图片
我们在没有导入证书的时候,访问时候是会报错的,会提示代理服务器出现问题,我们需要导入证书。需要进入刚刚那个文件夹目录,双击crt后缀的证书,进行如下操作
使用Jmeter进行性能测试及性能监控平台搭建_第7张图片

使用Jmeter进行性能测试及性能监控平台搭建_第8张图片
选择受信任的根证书办法机构,点击下一页,点击完成,它会弹出导入成功的弹框,至此证书安装完成!这个时候我们点击start按钮,然后运行代理以后,就可以正常的访问网页,进行抓包啦!
使用Jmeter进行性能测试及性能监控平台搭建_第9张图片
这里是我开启录制以后抓的包,非常多,很多没用的数据,我们可以过滤掉!我这边在url patterns to exclude/include里的过滤功能啦~这里支持正则表达式
使用Jmeter进行性能测试及性能监控平台搭建_第10张图片
拿到我们要的数据以后,我们可以点击点击上方绿色的运行的图标,这个时候它会运行线程组里的请求,为了方便查看,我们可以添加查看结果树(Thread Group-Add-Listener-View Results Tree)
使用Jmeter进行性能测试及性能监控平台搭建_第11张图片

三、虚拟用户并发模拟

我们新建线程组以后,可以对线程组一些参数进行配置:
使用Jmeter进行性能测试及性能监控平台搭建_第12张图片

1、Number Of Threads(users)

  • 默认使用几个线程去请求页面
  • 默认是1 user

2、Ramp-up Period(seconds):

  • 启动进程以后几秒去把user生成完成
  • 默认是1s
  • 如果设置的线程数是50,设置需要5s内完成,那每秒就执行10次

3、Loop Count:循环次数

  • 默认是1
  • 如果勾选Infinite就可以一直跑
  • 测试时候我们一般是一直运行这个操作或者是慢慢递增数量)

4、Specify Thread Lifttime:

  • 有两个选项
  • Duration(seconds):进程启动几秒后停止
  • Startup delay(seconds):启动进程以后要等待几秒再开始
    使用Jmeter进行性能测试及性能监控平台搭建_第13张图片
    比如我们这边设置一个线程持续不断的跑10s

使用Jmeter进行性能测试及性能监控平台搭建_第14张图片

尝试用单机操作了一下,当内存不够的时候会报错。因为单机的性能是很有限的,我们可以进行分布式测试。比如一台机器做jmeter控制端,再配置几台负载服务器。在发起几万个请求的时候,就可以均匀分布在这几台机器上做并发,可以给服务器造成更大压力

想要看下服务器有多大内存,我们可以去修改jmeter.sh的配置,这里默认是512,我们可以把它修改为4g然后保存
使用Jmeter进行性能测试及性能监控平台搭建_第15张图片

2,其他线程组

除了之前那个Thread Group线程组,jmeter还提供了另外2个线程组,分别是setUp和tearDown线程组

  • setUp线程组
    路径:Test Plan-Add-Threads-setUp Thread Group
    执行顺序:在Thread Group线程组执行前执行
    作用:比如某些接口需要带上登录获取token才能请求成功,这个时候我们可以把登录接口放在setUp线程组
  • tearDown线程组
    路径:Test Plan-Add-Threads-tearDown Thread Group
    执行顺序:在Thread Group线程组执行后执行
    使用Jmeter进行性能测试及性能监控平台搭建_第16张图片
    这里可以看到这两个线程组分别在请求前后执行了

四、压测结果分析

首先我们先来介绍导入功能:
如果我们在服务器上进行压测时,想要查看压测结果,可以把服务器生成的jtl文件导入这里进行展示
使用Jmeter进行性能测试及性能监控平台搭建_第17张图片

然后我们再来介绍3种监听器,分别是Listener View Result Tree,
AggreGate Report和Backend Listener

一、Listener View Result Tree

作用:把请求的返回结果在当前界面进行显示
路径:Thread Group-Add-Listener-View Results Tree
常用功能

  • 正则表达式测试:RegExp Tester
  • Css选择器测试:
  • XPath测试:XPath Tester(Use Tidy)
  • Json Tester:

功能演示:
使用Jmeter进行性能测试及性能监控平台搭建_第18张图片
基于正则:
使用Jmeter进行性能测试及性能监控平台搭建_第19张图片
基于Json path:
使用Jmeter进行性能测试及性能监控平台搭建_第20张图片

二、AggreGate Report

作用:聚合报告,显示请求的响应时间,tps,传输数据大小,百分比等
路径:Thread Group-Add-Listener-AggreGate Report
参数

  • 平均值:平均响应时间,所有请求的平均响应时间(单位是毫秒)
  • 中位数:50%的用户响应时间不超过这个值
  • 99% Line:99%的用户响应时间不超过这个值
  • Error%:异常百分比(错误请求的数量/请求的总数)
  • Throughput:吞吐量/tps,默认情况下每秒完成的请求数(单位是秒),吞吐量=1000/平均值*线程数(jmeter显示的吞吐量跟实际有差距的原因是因为jmeter每30s去采样一次)
  • Received KB/sec:每秒接收的数据
    ps:个别极端结果可能会对实际性能数据造成干扰,%Line更能客观反映实际性能情形
    使用Jmeter进行性能测试及性能监控平台搭建_第21张图片

三、Backend Listener

作用:把想要显示的内容写入数据库里,通过图形化展示工具从数据库读取进行图形化展示,使之更为美观

使用命令行进行压测
在实际测试过程中我们很少使用图形化界面,还有查看结果树之类的选项,因为会占用资源,影响测试结果。我们一般把它部署到服务器上。下面我们来介绍如何使用命令行进行压测。

1、测试环境准备:确保服务器上已经安装了jdk和jmeter

  • 检查linux系统上是否安装JDK,输入命令:java -version
    在这里插入图片描述

  • 上传 apache-jmeter-5.2.1.tgz 至linux服务器(可以使用sftp工具)

  • 使用命令 tar -zxvf apache-jmeter-5.2.1.tgz 解压文件
    使用Jmeter进行性能测试及性能监控平台搭建_第22张图片

  • 将jmeter添加至配置文件中,使用命令 vim /etc/profile 打开配置文件,添加以下内容至配置文件中(环境变量不是必须配置的,如果不配置环境变量,运行脚本的时候要在bin目录下运行)

#jmeter 环境变量
export JMETER_HOME=/usr/local/jmeter/apache-jmeter-5.3
export CLASSPATH=$JMETER_HOME/lib/ext/ApacheJMeter_core.jar:$JMETER_HOME/lib/jorphan.jar:$JMETER_HOME/lib/logkit-2.0.jar:$CLASSPATH
export PATH=$JMETER_HOME/bin:$PATH:$HOME/bin
  • 按下esc,输入:wq,回到控制台,使用命令 source /etc/profile 使配置文件生效(这里如果保存失败,大概率是权限问题,记得sudo -i
  • chmod +x jmeter 赋予权限
  • ./jmeter -v 查看jmeter是否正确安装,如果显示下图就表示安装成功啦~
    使用Jmeter进行性能测试及性能监控平台搭建_第23张图片
    操作步骤:
  • 在jmeter新建一个线程组,然后添加一个http请求,接着点击左上角文件-保存测试计划为-xxx.jmx
  • 使用xftp等工具把它传到服务器上
  • 进入jmeter里的bin目录,输入/jmeter.sh -n -t test.jmx -l result.jtl
参数 含义
-n 使用命令行运行
-t 指定测试计划
-l 指定结果的存放位置

测试计划是一个xml格式的文件,我们可以打开看下,我们可以在上传服务器后,我们也可以在这里修改文件的配置
使用Jmeter进行性能测试及性能监控平台搭建_第24张图片
压测界面:
使用Jmeter进行性能测试及性能监控平台搭建_第25张图片

五、Jmeter进行分布式压测

一,分布式简介:

为什么要使用分布式?

  • 单机性能瓶颈:CPU,内存,IO,网络等,测试大型项目恐无法满足需求

二,工作节点(slave)部署

负载机(slaves):端口 tcp 1099(有防火墙的话尽量要开启该端口)

  • jmeter properties配置
    关闭SSL:找到在jmeter/bin目录找到jmeter.properties文件,然后编辑,设置server.rmi.ssl.disable=true
  • system properties配置
    设置hostname:找到在jmeter/bin目录找到system.properties文件,添加一行配置: java.rmi.server.hostname=192.168.31.61(ip地址修改为自己本机的,如果是window系统,可以cmd然后输入ipconfig进行查看,linux可以通过ifconfig查看)
  • 运行jmeter-server
    运行./jmeter-server
    使用Jmeter进行性能测试及性能监控平台搭建_第26张图片

三、控制节点(master)部署

打开另一台服务器,编辑控制端的jmeter

1、控制端(master):端口 udp 4445

  • jmeter properties配置:
    找到在jmeter/bin目录找到jmeter.properties文件,然后编辑如下2个字段
    1.添加负载机ip:remote_hosts=192.168.31.61,192.168.31.63(支持多个,用逗号隔开)
    2.关闭SSL:server.rmi.ssl.disable=true
  • 运行jmeter-server
    运行./jmeter-server,这个时候打开GUI,在运行这边即可查看到控制机器,我们就可以使用这些进行分布式压测啦~
    使用Jmeter进行性能测试及性能监控平台搭建_第27张图片
    当然除了gui,我们也可以使用命令行进行分布式压测:/jmeter.sh -n -t test.jmx -l result.jtl -R 192.168.31.61,多个ip可以用逗号隔开
参数 含义
-n 使用命令行运行
-t 指定测试计划
-l 指定结果的存放位置
-R 指定负载机ip

使用Jmeter进行性能测试及性能监控平台搭建_第28张图片

六、性能监控系统

一、简介

jmeter运行的时候会产生很多数据,我们可以通过jmeter的组件backend listener,实时的把数据写入InfluxDB,然后Grafana工具会从InfluxDB读取数据,然后使用图形界面进行展示,具体架构如下:

使用Jmeter进行性能测试及性能监控平台搭建_第29张图片

二、部署

1、部署InfluxDB

  • 官网:https://github.com/influxdata/influxdb
  • InfluxDB是一个使用Go语言开发的开源分布式时序数据库,特别适合用于处理和分析资源监控数据,用于存储压测数据
  • 这里通过docker的方式进行部署(docker部署方式详见docker从入门到放弃)
  1. 新建容器网络:docker network create grafana(不同容器想要互相通信必须在一个网络,所以需要新建容器网络)
  2. 运行容器:docker run -d --name=influxdb --network grafana -p 8086:8086 -v ${PWD}/influxdb/:/var/lib/influxdb/ influxdb:1.7.10
语法 含义
-d 后台运行
–name 相当于域名,我们可以通过名字找到容器实际的ip地址
–network 指定具体网络
-p 指定端口号,jmeter通过这个端口写入数据到influxdb
-v 把容器的数据库文件挂载在当前目录的influxdb目录
  1. 创建数据库
    • 第一种方式: curl -i -XPOST http://localhost:8086/query --data-urlencode "q=CREATE DATABASE jmeter"
    • 第二种方式:docker exec -it influxdb influx,执行语句 create dataase jmeter;
  2. 基本语法
    • show dataases;
    • use jmeter;
    • show measurements;
    • select * from jmeter limit 3;
    • exit

2、部署Grafana

  • Grafana是一个可视化面板(Dashboard工具),有非常漂亮的图表展示功能,齐全的亮度仪表盘和图形编辑器,可以支持不同种类的数据源,用于将存储与influxdb中的数据以图表形式展示出来
  • 运行容器:docker run -d --name grafana --network grafana -p 3001:3000 grafana/grafana:8.8.3
  • 访问grafana
    启动成功后,网页输入服务器ip地址+之前设置的端口号,即可实现访问,默认账号密码:admin/admin
    忘记密码点这里
    使用Jmeter进行性能测试及性能监控平台搭建_第30张图片
    功能简介:
    侧边栏第一个:主要使用的是dashboard,通过这个监控各种服务,进行数据的展示
    使用Jmeter进行性能测试及性能监控平台搭建_第31张图片
    浏览(目前暂时无数据)
    使用Jmeter进行性能测试及性能监控平台搭建_第32张图片

告警信息(如果是监控主机,设置规则cpu使用率超过80%要告警,一旦超过了这边会有告警提示,目前暂时用不到)
使用Jmeter进行性能测试及性能监控平台搭建_第33张图片

侧边栏的设置图标:这里可以用来配置数据源
使用Jmeter进行性能测试及性能监控平台搭建_第34张图片
侧边栏最后一个:系统管理(暂时用不到)
使用Jmeter进行性能测试及性能监控平台搭建_第35张图片
闲言少叙,我们进行操作

一、导入数据源配置

1、点击倒数第二个图标-Data Sources-Add data source-选择influxDB
使用Jmeter进行性能测试及性能监控平台搭建_第36张图片
参数如下:

  • url:写的容器名+端口号

  • ip:因为之前创建容器的时候容器名我们指定是influxdb,所以这里我们直接写的influxdb,端口号就填写之前我们映射的
    在这里插入图片描述
    当然这里也可以使用ip地址+端口号:172.18.0.2:8086(比较麻烦,不推荐)
    使用Jmeter进行性能测试及性能监控平台搭建_第37张图片

  • Auth:认证方面的因为我们没有设置,所以略过

  • database:这里我们之前在influxdb创建了jmeter这个表,所以这里填写这个

使用Jmeter进行性能测试及性能监控平台搭建_第38张图片

  • Min time interval:提取/刷新时间,jmeter默认写数据到influxdb是5s一次,grafana去读取influxdb是10s一次,这里存在误差,想要精确读取数据,我们这里可以配置5s,这样就不会出现偏差。写完可以点击底下的sava&test按钮测试下
    使用Jmeter进行性能测试及性能监控平台搭建_第39张图片
    二、导入dashboard
    dashboard支持自定义,但是比较麻烦,推荐使用别的开发者提供的jmeter的展示面板(https://grafana.com/grafana/dashboards/5496)
    如果用不了可以看下版本是否符合要求
    使用Jmeter进行性能测试及性能监控平台搭建_第40张图片

    添加控制面板:进入dashboard-manage-import-输入上面的网址-点击load(第一次会提示失败,等几秒就好了)然后会进入下面的页面

    • name:支持随意更改
    • DB name:选择刚刚配置的InfluxDB
    • Measurement name:数据库里的表,相当于mysql的table,支持自定义
    • Backend send interval:后端发送间隔
      使用Jmeter进行性能测试及性能监控平台搭建_第41张图片
      保存成功后,在列表页点击名称可以进入详情
      使用Jmeter进行性能测试及性能监控平台搭建_第42张图片

三、执行jmeter脚本
现在我们去启动一个jmeter,执行下再来看grafana。这里注意,我们需要把influxdb和grafana都是要放到服务器里面的,然后需要公网ip。如果没有公网ip,可以放在同一个局域网,这样jmeter才能访问。
1、新建一个线程组-添加一个http请求-添加一个监听器-后端监听器实现选择influxdb的,见截图
这里我们需要修改一些配置,其他就默认先不改了

  • influxdbUrl:http://10.218.221.24:8086/write?db=jmeter(这里的ip和端口号要替换成服务器的ip地址和之前配置的influxdb的端口号)
  • application:这里关系到grafana图表里面application的展示,建议改一下
  • measurement:和之前在grafana的dashboard里面填的一致
  • summary only:错误是否dashboard的errors面板是否显示详细数据,默认为true(不展示),我们设置为false以后就会展示了
    使用Jmeter进行性能测试及性能监控平台搭建_第43张图片

接着,我们点击运行按钮发起请求
使用Jmeter进行性能测试及性能监控平台搭建_第44张图片
这里我们注意下右上角的选项,比如我们选择last 5 mins,那5分钟后,如果没有新请求产生,这边就会显示空的数据
使用Jmeter进行性能测试及性能监控平台搭建_第45张图片
这边可以指定刷新频率,默认是关闭的,我们可以选择刷新频率

使用Jmeter进行性能测试及性能监控平台搭建_第46张图片
错误面板展示

  • 添加事务面板
    1,新建事务请求
    使用Jmeter进行性能测试及性能监控平台搭建_第47张图片
    2,查看dashboard里事务面板的展示

在application里面选择刚刚新建的
使用Jmeter进行性能测试及性能监控平台搭建_第48张图片
这里可以看到事务的展示
使用Jmeter进行性能测试及性能监控平台搭建_第49张图片
接着,我们来关注下influxdb
使用Jmeter进行性能测试及性能监控平台搭建_第50张图片
使用Jmeter进行性能测试及性能监控平台搭建_第51张图片
存储具体的测试结果参数

七、性能监控体系实战

本节介绍的是如何使用Prometheus监控被测服务器的相关性能指标

一、Prometheus简介

  • Prometheus是一款开源的系统监控和警报工具,使用Go语言开发,有各种exporter用来收集服务器性能数据。
  • 我们通过Prometheus来监控压测时的服务器性能

二、部署Prometheus

  • 编辑配置文件
    启动前我们需要先去编辑Prometheus配置文件,因为Prometheus要监控服务前,需要先知道服务器的ip地址,启动的node exporter的端口。下面是Prometheus官方的一个配置文件范例:https://github.com/prometheus/prometheus/blob/master/documentation/examples/prometheus.yml
global:
  scrape_interval:     15s # 抓取间隔
  evaluation_interval: 15s # 收集时间间隔,配置报警时候这个值才起作用
  # scrape_timeout is set to the global default (10s).

# Alertmanager configuration
alerting:
  alertmanagers:
  - static_configs:
    - targets:
      # - alertmanager:9093

# Load rules once and periodically evaluate them according to the global 'evaluation_interval'.
rule_files:
  # - "first_rules.yml"
  # - "second_rules.yml"

# A scrape configuration containing exactly one endpoint to scrape:
# Here it's Prometheus itself.
scrape_configs:
  # The job name is added as a label `job=` to any timeseries scraped from this config.
  - job_name: 'prometheus'

    # metrics_path defaults to '/metrics'
    # scheme defaults to 'http'.
    # 指定服务器的ip地址和端口号
    static_configs:
    - targets: ['localhost:9091']

我们先在服务器vim prometheus.yml,然后把它上面的脚本黏贴进去,保存

  • 运行docker run -d --name prometheus --network grafana -p 9091:9090 -v ${PWD}/prometheus.yml:/etc/prometheus/prometheus.yml prom/prometheus:v2.16.0 --config.file=/etc/prometheus/prometheus.yml(-v xxx:把当前编辑的yml文件挂载到容器里的/etc/prometheus/promethues.yml文件里,后面再跟上Prometheus的镜像版本,config.file=/etc/prometheus/prometheus.yml:Prometheus运行时去指定容器里的配置文件)
    成功后我们浏览器输入服务器ip:9091端口号(我们自己配置成9091的)实现访问
    使用Jmeter进行性能测试及性能监控平台搭建_第52张图片
    我们可以在这个路径访问我们刚刚的配置文件,浏览器输入ip+端口号/metrics即可访问数据。根据配置,Prometheus每隔15s就会来访问这里的配置文件,从数据库读取数据,最终显示图形化界面
    使用Jmeter进行性能测试及性能监控平台搭建_第53张图片

三,被测机安装node-exporter

Prometheus提供多种exporter来监控不同类型数据,比如jmx_exporter,snmp_exporter,mysqld_exporter…本次我们演示使用node exporter来监控主机的性能数据
下面我们进行安装

  1. 下载安装包:https://github.com/prometheus/node_exporter/releases 选择对应版本进行下载
  2. 把文件传到服务器,进行解压缩
  3. 我们可以输入 ./node_exporter --help查看帮助信息
    使用Jmeter进行性能测试及性能监控平台搭建_第54张图片
  • 修改默认的监听端口:node_exporter默认是监听9100端口的,如果这个端口已经被占用,我们可以进行修改:./node_exporter --web.listen-address=":9102"。如果服务器下有多个ip,比如内网外网,只想在内网显示出来,前面还可以加上ip地址./node_exporter --web.listen-address="192.234.2.2:9102",但是这样就会一直在前台运行,运行期间我们做不了其他操作,除非退出。我们可以加上nohub参数让它在后台运行:nohup ./node_exporter --web.listen-address=":9102" &

安装成功以后我们可以输入被测机ip+端口号进行访问。
点进去时候显示的内容和Prometheus里显示的是一样的,都是一些性能参数,Prometheus会定期抓取,然后存入数据库
使用Jmeter进行性能测试及性能监控平台搭建_第55张图片

四,在Prometheus里添加exporter

编辑prometheus.yml配置文件,在末尾添加上刚刚的exporter:vim prometheus.yml ,保存

  - job_name: 'exporter http://10.218.220.218:9100/'
    static_configs:
    - targets: ['10.218.220.218:9100']

job_name支持自定义,targets里面填写exporter那台机器的ip和配置的端口号
使用Jmeter进行性能测试及性能监控平台搭建_第56张图片
重启docker,使其生效:docker restart prometheus
我们回到页面,可以看到此时多了1个我们刚刚配的
使用Jmeter进行性能测试及性能监控平台搭建_第57张图片
因为这个界面不太好看,我们这边用grafana进行展示。

  • 进入grafana,在数据源那边选择prometheus,其他配置见下图,点击保存
    使用Jmeter进行性能测试及性能监控平台搭建_第58张图片
    然后我们点击save&test按钮进行保存。
    保存成功后,我们去新增node_exporter的dashboard面板,我们这边用的还是别人做好的
    我们进入grafana的面板这边,点击import,然后输入https://grafana.com/grafana/dashboards/8919,点击load
    (ps:8+的grafana才可以直接用网址形式导入,6+的grafana是不支持直接用网址导入的,因为这个的版本太新了,不支持6+的,要用旧版,我们这边用upload .json file,下载地址:https://grafana.com/grafana/dashboards/8919/revisions,选择24的那个)
    使用Jmeter进行性能测试及性能监控平台搭建_第59张图片
    这边就会有具体内容,我们这边需要选择里面的数据源,然后点击import
    使用Jmeter进行性能测试及性能监控平台搭建_第60张图片
    就可以看到这个界面,这样我们就可以对被测服务器进行监控啦~
    使用Jmeter进行性能测试及性能监控平台搭建_第61张图片

你可能感兴趣的:(自动化测试,性能测试,测试工具,Prometheus,grafana,性能测试,性能监控)