10小时掌握Java进阶必备技术栈 学习笔记Day 2

261 阅读4分钟

hi,我是蛋挞,一个初出茅庐的后端开发,希望可以和大家共同努力、共同进步!


开启掘金成长之旅!这是我参与「掘金日新计划 · 4 月更文挑战」的第 21 天,点击查看活动详情

  • 起始标记->项目性能优化:「项目性能优化 | 上」
  • 结尾标记->项目性能优化:「项目性能优化 | 上」

压测监控平台

image.png

Docker + JMeter + InfluxDB + Grafana + node_exporter

**1 配置Docker环境 ** 1)yum 包更新到最新 sudo yum update 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 4)安装docker sudo yum install docker-ce 5)安装后查看docker版本 docker -v 2安装InfluxDB 1)下载InfluxDB的镜像: docker pull influxdb:1.8 2)启动InfluxDB的容器,并将端口 8083 和 8086 映射出来 docker run -d --name influxdb -p 8086:8086 -p 8083:8083 influxdb:1.8 3)进入容器内部,创建名为jmeter的数据库: 进入 jmeter-influx 容器 docker exec -it influxdb /bin/bash

  • 输入 influx 命令,即可进入 influx 操作界面
  • 输入 create database jmeter 命令,创建名为 jmeter 的数据库
  • 输入 show databases 命令,查看数据库创建成功

root@517f57017d99:/# influx Connected to http://localhost:8086 version 1.7.10 InfluxDB shell version: 1.7.10

create database jmeter show databases

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

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

use jmeter select * from jmeter

**3设置JMeter脚本后置监听器 **1)想要将 JMeter的测试数据导入 InfluxDB ,就需要在 JMeter中使用 Backend Listener 配置 image.png 2)主要配置说明: implementation 选择 InfluxDB所对应的: image.png

  • influxdbUrl:需要改为自己influxdb的部署ip和映射端口,我这里是部署在阿里云服务器,所以就
  • 是47.93.59.248,口是容器启动时映射的8086端口,db后面跟的是刚才创建的数据库名称
  • application:可根据需要自由定义,只是注意后面在 grafana 中选对即可
  • measurement:表名,默认是 jmeter ,也可以自定义
  • use jmeter

  • select * from jmeter

  • 1
  • 2summaryOnly:选择true的话就只有总体的数据。false会记录总体数据,然后再将每个
  • transaction都分别记录
  • samplersRegex:样本正则表达式,将匹配的样本发送到数据库
  • percentiles:响应时间的百分位P90、P95、P99
  • testTitle:events表中的text字段的内容
  • eventTags:任务标签,配合Grafana一起使用

注意:云服务器配置开启端口8086

influxdbMetricsSender org.apache.jmeter.visualizers.backend.influxdb.HttpMetricsSender influxdbUrl http://47.93.59.248:8086/write?db=jmeter application hero_mall_one measurement jmeter summaryOnly false samplersRegex * percentiles 90;95;99 testTitle 压力测试案例01 eventTags

3)运行验证:运行 Jmeter 脚本,然后再次在 influxdb 中查看数据,发现类似下面的数据说明输入导入 成功: image.png 4 安装Grafana 1)下载Grafana镜像: docker pull grafana/grafana 2)启动Grafana容器,将3000端口映射出来: docker run -d --name grafana -p 3000:3000 grafana/grafana 3)网页端访问http://47.93.59.248:3000验证部署成功 image.png 默认账户密码:admin\admin 4)选择添加数据源 image.png 5)找到并选择 influxdb : image.png 6)配置数据源 image.png 数据源创建成功时会有绿色的提示: image.png 7)导入模板 image.png 模板导入分别有以下3种方式:

  • 直接输入模板id号
  • 直接上传模板json文件
  • 直接输入模板json内容

image.png 8)在grafana的官网找到我们需要的展示模板

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

9)导入模板,我这里选择输入模板id号,导入后如下,配置好模板名称和对应的数据源,然后 import 即可 image.png 10)展示设置,首先选择创建的application image.png **注意: **如果我们修改过表名,也就是在jmeter的Backend Listener的measurement配置(默认为 jmeter),这个时候就需要去设置中进行修改,我这里使用的就是默认的,所以无需修改。 03-安装node_exporter

下载

wget -c github.com/prometheus/… porter-0.18.1.linux-amd64.tar.gz

解压

tar zxvf node_exporter-0.18.1.linux-amd64.tar.gz -C /usr/local/hero/

启动

cd /usr/local/hero/node_exporter-0.18.1.linux-amd64 nohup ./node_exporter > node.log 2>&1 &

注意:在被监控服务器中配置开启端口9100 image.png 04-安装Prometheus 1)下载解压运行

下载

wget -c github.com/prometheus/… -2.15.1.linux-amd64.tar.gz

解压

tar zxvf prometheus-2.15.1.linux-amd64.tar.gz -C /usr/local/hero/

运行

nohup ./prometheus > prometheus.log 2>&1 &

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

  • job_name: 'hero-Linux' static_configs:
  • targets: ['172.17.187.78:9100','172.17.187.79:9100','172.17.187.81:9100']

3)测试Prometheus是否安装配置成功 http://47.93.59.248:9090/targets image.png 3)在Grafana中配置Prometheus的数据源: image.png 4)导入Linux系统dashboard

  • Node Exporter for Prometheus Dashboard EN 20201010
    • dashboard-ID: 11074
  • Node Exporter Dashboard
    • dashboard-ID: 16098

image.png image.png


此文章为4月Day21学习笔记,内容来源于极客时间《Elasticsearch 核心技术与实战》