Prometheus+Grafana+Jmeter+Influxdb性能测试监控平台搭建

2022-05-27

废话不多说,直接开干,按照本人的教程,可以说是手摸手了,开始吧:

1.下载容器

docker pull prom/node-exporter
docker pull prom/prometheus
docker pull grafana/grafana

image-1653578912923

2.启动node-exporter
#我这里直接映射了端口,没有做数据卷的挂载

docker run -d -p 9100:9100 prom/node-exporter

image-1653578956916

3.访问url查看是否有数据
image-1653578987205
image-1653579014419

4.启动prometheus
新建目录prometheus,编辑配置文件prometheus.yml
这个时候切换下root用户,不然没有权限修改文件

mkdir /opt/prometheus
vi /opt/prometheus/prometheus.yml

image-1653579163784

配置文件中的内容:

global:
  scrape_interval:     60s
  evaluation_interval: 60s
 
scrape_configs:
  - job_name: prometheus
    static_configs:
      - targets: ['localhost:9090']
        labels:
          instance: prometheus
 
  - job_name: linux
    static_configs:
      - targets: ['192.168.91.132:9100']
        labels:
          instance: localhost

说明:scrape_configs配置采集目标endpoints,job_name:任务名,targets:监控目标访问地址

5.启动Prometheus

docker run -d -p 9090:9090 -v /opt/prometheus/prometheus.yml:/etc/prometheus/prometheus.yml prom/prometheus

6.访问http://192.168.91.132:9090/graph
image-1653579307612

7. 访问http://192.168.91.132:9090/targets
image-1653579735432

8.启动grafana

docker run -d --name jmeter-grafana --restart=always -p 3000:3000 grafana/grafana

image-1653579828023

9.访问grafana,登录账号和密码默认是admin,登录成功一次后要求自行修改密码
image-1653580230626

修改完密码进入
image-1653580264955

10.进入首页后选择添加数据源
image-1653580349404
image-1653580410242
image-1653580479722
输入完毕后往下划:
image-1653580493605
点击保存后:提示
image-1653580508006

配置好后点击save&test如果显示通过就证明成功了

image-1653580621553
image-1653580658003
image-1653580689585

image-1653580702918

11.导入完成后的大概效果就如图所示了

12.安装用于存放jmter测试数据数据库
拉取influxdb容器

docker pull influxdb

把端口8083和8086映射出去

docker run -d --name jmeter-influx -p 8083:8083 -p 8086:8086 influxdb:1.8

启动容器后进入influxdb容器内

 docker exec -it jmeter-influx /bin/bash

进入容器后输入

influx

进入数据库

image-1653581628600

13.创建用户root和数据库jmeter

CREATE USER "root" WITH PASSWORD '123456' with all privileges

create database jmeter

image-1653581703036

14. 查看数据库

show databases

image-1653581751106

15.使用jmeter库

use jmeter

select * from jmeter

image-1653581796635

16.搞完上面的我们打开jemeter在设置对应请求的线程组中添加一个后端监听器

image-1653581857692

image-1653581987403

主要配置说明:
implementation选择influxdb所对应的:
image-1653582051223

influxdbUrl:需要改为自己influxdb的部署ip和映射端口,端口是容器启动时映射的8086端口,db后面跟的是刚才创建的数据库名称
application:可根据需要自由定义,只是注意后面在grafana中选对即可
measurement:表名,默认是jmeter,也可以自定义
summaryOnly:选择true的话就只有总体的数据,false会将每个transaction都分别记录

17.配置完成后运行脚本,然后我们可以在返回Linux中查看jmeter表的数据会发现有数据生成了

select * from jmeter

image-1653582177846

18.运行grafana容器我这里是已经启动的状态,所以直接访问grafana,然后添加InfluxDB的数据源,配置对应的信息
image-1653582319358

image-1653582476826

image-1653582550900

19.添加完数据源以后就添加仪表板,仪表板选择5496大致设置如下
image-1653582627625

image-1653582644940

20.数据展示:
image-1653582836361
image-1653582762337

最后补充一点:Jmeter配置Prometheus Listener

配置Prometheus Listener

JMeter添加后端监控器Prometheus Listener
需要先增加jmeter-prometheus-plugin插件。

插件地址:https://github.com/johrstrom/jmeter-prometheus-plugin/releases

将下载好的"jmeter-prometheus-plugin-0.6.0jar"
image-1653584320660

放入根据自己的jmter路径下,

在jmeter脚本中的http请求内部,添加Listener中的Prometheus Listener。