• InfluxDB、Grafana、node_exporter、Prometheus搭建压测平台


    InfluxDB、Grafana、node_exporter、Prometheus搭建压测平台

    我们的压测平台的架构图如下:

    压测架构图

    配置docker环境

    1)yum 包更新到最新

    sudo yum update
    

    更新yum包

    如果有提示,直接输入y,回车。

    2)安装需要的软件包, yum-util 提供yum-config-manager功能,另外两个是devicemapper驱动依赖的

    sudo yum install -y yum-utils device-mapper-persistent-data lvm2
    

    安装所需软件包

    3)设置yum源为阿里云

    配置yum源的代理,类似于maven镜像仓库,加速下载软件。

    sudo yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
    

    配置yum源的代理

    4)安装docker

    sudo yum install docker-ce
    # 启动
    systemctl start docker
    

    安装并启动docker

    5)安装后查看docker版本

    docker -v
    

    docker版本

    安装InfluxDB

    1)下载InfluxDB的镜像:

    docker pull influxdb:1.8
    

    下载InfluxDB镜像

    2)启动InfluxDB的容器,并将端口 8083 和 8086 映射出来:

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

    启动InfluxDB的容器

    3)进入容器内部,创建名为jmeter的数据库:

    进入 jmeter-influx 容器

    docker exec -it influxdb /bin/bash
    
    • 输入influx命令,即可进入 influx 操作界面
    • 输入create database jmeter 命令,创建名为 jmeter 的数据库
    • 输入show databases 命令,查看数据库创建成功

    创建jmeter数据库

    4)使用jmeter库, select 查看数据,这个时候是没有数据的:

    • 输入use jmeter命令,应用刚才创建的数据库
    • 输入select * from jmeter命令,查询库中有哪些数据
    > use jmeter
    > select * from jmeter
    

    使用jmeter库

    设置JMeter脚本后置监听器

    添加后置监听器:

    添加后置监听器

    设置后端监听器

    设置后端监听器

    配置如下:

    配置

    • influxdbUrl:需要改为自己influxdb的部署ip和映射端口,db后面跟的是刚才创建的数据库名称
    • application:可根据需要自由定义,只是注意后面在 grafana 中选对即可
    • measurement:表名,默认是 jmeter ,也可以自定义
    • summaryOnly:选择true的话就只有总体的数据。false会记录总体数据,然后再将每个transaction都分别记录
    • samplersRegex:样本正则表达式,将匹配的样本发送到数据库
    • percentiles:响应时间的百分位P90、P95、P99
    • testTitle:events表中的text字段的内容
    • eventTags:任务标签,配合Grafana一起使用

    运行测试

    点击运行:

    点击运行

    查看数据库中的数据:

    看到数据

    表示配置成功。

    安装Grafana

    1)下载Grafana镜像:

    docker pull grafana/grafana
    

    下载Grafana镜像

    2)启动Grafana容器:

    启动Grafana容器,将3000端口映射出来

    docker run -d --name grafana -p 3000:3000 grafana/grafana
    

    启动Grafana容器

    3)验证部署成功

    网页端访问http://安装grafana的ip:3000验证部署成功

    image-20240319073928218

    默认账户密码:admin\admin

    整合数据源

    使用admin\admin登录

    1)选择添加数据源

    添加数据源

    2)选择添加数据源

    image-20240319073950010

    3)配置数据源

    配置数据源1

    配置数据库,数据库名要和创建的数据库、Jmeter连接的数据库保持一致。

    配置数据库

    保存

    导入模板

    寻找模板

    进入Grafana官网https://grafana.com/

    在首页拉到最下方:

    网站截图

    搜索Jmeter相关的

    搜索模板

    我们使用如下两个模板:

    • Apache JMeter Dashboard
      • dashboad-ID:5496
    • JMeter Dashboard(3.2 and up)
      • dashboad-ID:3351

    导入模板

    点击导入模板

    输入模板id

    输入模板id,并load

    修改名字和数据源:

    截图

    可以看到如下的界面

    界面

    保存

    保存

    安装node_exporter

    # 下载 可以直接下载下来传到服务器
    wget -c https://github.com/prometheus/node_exporter/releases/download/v0.18.1/node_exporter-0.18.1.linux-amd64.tar.gz
    # 解压
    tar zxvf node_exporter-0.18.1.linux-amd64.tar.gz -C /usr/local/sjdwz_test/
    # 启动
    cd /usr/local/sjdwz_test/node_exporter-0.18.1.linux-amd64
    nohup ./node_exporter > node.log 2>&1 &
    

    启动node_exporter

    看到如下界面即可:

    看到如下界面

    安装Prometheus

    1)下载解压运行

    # 下载 可以下载压缩包传到如武器
    wget -c https://github.com/prometheus/prometheus/releases/download/v2.15.1/prometheus-2.15.1.linux-amd64.tar.gz
    # 解压
    tar zxvf prometheus-2.15.1.linux-amd64.tar.gz -C /usr/local/sjdwz_test/
    cd /usr/local/sjdwz_test/prometheus-2.15.1.linux-amd64
    # 运行
    nohup ./prometheus > prometheus.log 2>&1 &
    

    测试浏览

    2)配置prometheus

    在prometheus.yml中加入如下配置:

    scrape_configs:
      # The job name is added as a label `job=` to any timeseries scraped from this config.
      - job_name: 'sjdwz-Linux'
        static_configs:
          - targets: ['192.168.225.206:9100']
    

    配置

    3)测试Prometheus

    重启Prometheus,测试是否安装配置成功

    配置

    测试

    3)在Grafana中配置Prometheus的数据源:

    image-20240319073858418

    保存即可。

    4)Grafana导入Linux展示模板

    导入Linux系统dashboard

    • Node Exporter for Prometheus Dashboard EN 20201010

      • dashboard-ID: 11074

        导入模板

        模板

        展示

    • Node Exporter Dashboard

      • dashboard-ID: 16098
  • 相关阅读:
    每天一个新知识之 SpringBoot+Dubbo 的快速入门
    SpringBoot整合框架——集成SpringSecurity、shiro
    互斥量解决线程同步问题
    [Linux入门]---初识冯诺依曼体系
    vmware使用桥接模式无法ping通本地和外网的解决方法
    常见git提交规范
    软件测试中的树莓酱定律
    计算机网络刷题:计算机网络概述
    记录--IR_cut切换模块流程
    vue3+TS实现简易组件库
  • 原文地址:https://www.cnblogs.com/nicaicai/p/18081937