压测平台搭建过程

平台结构

该平台为简化版本(主要简化在项目部分),共计4台云服务器,均位于同一内网中,使用的是阿里云计量付费模式,4C8G配置。
图中黑色方框即为一台独立主机,蓝色方框表示部署在 docker 内部。如果应用程序启用了 Redis,请使用 docker 部署于 Mysql 服务器上。

平台介绍

平台分为四个部分:

  • Jmeter 部分为压力机,未进行多机并发压力
  • Application 部分为程序主要位置。
  • MySql 部分可增加 Reids,为数据部分。
  • Grafana、Prometheus、InfluxDB 分别负责数据可视化、存储主机状态数据、存储压力相关数据。

平台基础环境为 JDK、 Docker,理论情况下完全部署到 Docker内。

所有主机操作系统均为 Centos 7.6,Mysql版本 5.7

JDK 安装

一言以蔽之:下载JDK、解压、移动到自己想安装的位置下、设置环境变量、source生效
另外:也可使用仓库下载 OpenJDK

  • 下载JDK:官方网站下载JDK,下载时请注意系统版本
#1. 查看当前Linux系统是否已经安装java
    rpm -qa | grep -i java
    
#2. 解压已上传的JDK压缩包,并移动到/usr/local目录下
   mkdir /usr/local/study
   tar -zxvf /root/jdk-8u361-linux-x64.tar.gz -C /usr/local/study

#3. 测试jdk
    /usr/local/study/jdk1.8.0_361/bin/java -version
    
#4. 配置环境变量
  vim /etc/profile
     G 跳转到最后一行
     i 进入插入模式
     export JAVA_HOME=/usr/local/study/jdk1.8.0_361
     export PATH=$PATH:$JAVA_HOME/bin
     esc 进入命令行模式
     :wq! 保存
  
#5. 更新环境变量
    source /etc/profile
  
#6. 测试
    java -version

能够正常打印信息则表示无问题,存在问题请再使用搜索引擎搜索:JDK 安装。

Docker 安装

一言以蔽之:更新仓库源、利用仓库下载

# 更新仓库源 centos 为 yum, Ubuntu 为 apt-get
sudo yum update -y
# 下载指定依赖 yum-util 提供yum-config-manager功能,另外两个是devicemapper驱动依赖
sudo yum install -y yum-utils device-mapper-persistent-data lvm2
# 配置yum源的代理,类似于maven镜像仓库,加速下载软件 视自己网络情况而定
sudo yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
# 安装
sudo yum install docker-ce -y
# 启动
systemctl start docker
# 检查
docker -v

Jmeter

Jmeter 安装

Jmeter ,可以从官网地址进行下载,同时可以阅览其中文社区了解更多内容。

压测方式主要是在本地电脑使用可视化界面进行脚本设计,完成后使用 Linux 进行分布式压力测试。

单机 Linux 版本安装如下:

# 1、下载、安装JMeter 链接可以从官网更新为最新的
wget -c https://dlcdn.apache.org//jmeter/binaries/apache-jmeter-5.5.tgz
# 解压
tar -zxvf apache-jmeter-5.4.1.tgz -C /usr/local/study
cd /usr/local/study/apache-jmeter-5.5

# 2、配置环境变量
    输入命令 vim /etc/profile ,在最下面添加如下内容:
        export JMETER_HOME=/usr/local/study/apache-jmeter-5.5
        export PATH=$JMETER_HOME/bin:$PATH
# 3、保存后,输入命令 ,使修改的配置生效。
source /etc/profile 
# 4、测试是否安装成功
jmeter -v

Jmeter 插件安装:

下载地址下载后,移动到

  • 关于Jmeter 插件: 在PC端安装之后,可以同步文件夹到 Linux 环境下,即可完成插件安装。

Jmeter Linux 使用

主要是上传压测脚本到压测服务器,然后执行命令:

jmeter -n -t [jmx file] -l [results file] -e -o [Path to web report folder]
# 常用参数说明
-h 帮助:打印出有用的信息并退出
-n 非 GUI 模式:在非 GUI 模式下运行 JMeter
-t 测试文件:要运行的 JMeter 测试脚本文件
-l 日志文件:记录结果的文件
-r 远程执行:启动远程服务
-H 代理主机:设置 JMeter 使用的代理主机
-P 代理端口:设置 JMeter 使用的代理主机的端口号
-e:测试结束后,生成测试报告
-o:指定测试报告的存放位置

Jmeter 使用

可以查看Jmeter使用教程,学习Jmeter基础操作,学习如何构建基本的测试环境。

可以自行百度: Jmeter 配置后置监听器,设定 InfluxDB 所在的 Ip、端口、数据库即可。

InfluxDB

InfluxDB 安装

一言以蔽之: 拉取 Docker镜像、运行镜像。

# 搜索InfluxDB镜像
docker search influxdb
# 下载
docker pull influxdb:1.8
# 启动,并将 8083 和 8086 端口暴露出来
docker run -d --name influxdb -p 8086:8086 -p 8083:8083 influxdb:1.8
#  进入容器
docker exec -it influxdb /bin/bash

InfluxDB 使用

# 进入 InfluxDB 操作界面
influxdb
# 创建数据库
>create databse jmeter
>show database
# 使用 jmeter 库查看数据 此时应该为空
>use jmeter
>select * from jmeter

此时操作结束,可以使用 Jmeter 进行压力测试 然后再次使用 select 命令查看是否存在数据。

MySql

Mysql 安装

一言以蔽之: 拉取 Docker镜像、运行镜像。

可以使用 yum 等包管理器安装

docker pull mysql:5.7
# -p 端口映射 -v 文件挂载 -e 设置环境变量
docker run -id --name=c_mysql -p 3306:3306 \
-v /root/mysql/logs:/logs \
-v /root/mysql/data:/var/lib/mysql \
-v /root/mysql/conf:/etc/mysql/conf.d \
-e MYSQL_ROOT_PASSWORD=123456 mysql:5.7

通过暴露的端口和映射的文件夹,使用 source 命令完成自己的数据库创建和导入过程。

Application

Application 打包

Springboot 打成 Jar 包最为简单,然后使用 java -jar xxx.jar 进行启动。

Application 启动

SpringMVC 打成 war 包,服务器下载tomcat,然后启动。
具体可以自己百度。

Prometheus

Prometheus 安装

下载解压运行

# 下载
wget -c https://github.com/prometheus/prometheus/releases/download/v2.15.1/prometheus-2.15.1.linux-amd64.tar.gz
# 解压
mkdir /usr/local/study/
tar zxvf prometheus-2.15.1.linux-amd64.tar.gz -C /usr/local/study/
cd /usr/local/study/prometheus-2.15.1.linux-amd64
# 运行
nohup ./prometheus > prometheus.log 2>&1 &

检查 http://ip:9090/targets查看是否启动成功。

node-server 安装

在想要监听的服务器上,需要安装 node-xporter 进行监听。

# 下载
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/study/
# 启动
cd /usr/local/study/node_exporter-0.18.1.linux-amd64
nohup ./node_exporter > node.log 2>&1 &

下载解压启动即可。
检查 http://ip:9100/metrics 查看是否启动成功。

Prometheus 修改配置文件

修改配置文件以配对

 - job_name: '这里随意'
    static_configs:
    - targets: ['ip1:9100','ip2:9100','ip3:9100']

其中 ip1ip2ip3 等对应其他安装 node-exporter 的主机。端口为 node-exporter 所暴露端口。

配置完成后重启 Prometheus,

ps aux | grep prometheus

kill pid

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

检查 http://ip:9090/targets等待节点状态刷新,查看是否能看到 EndipointState

Grafana

Grafana 安装

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

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

默认账号密码: adminadmin

Grafana 使用

两步走: 配置数据源、配置模板,即可。

Grafana 配置 InlufxDB

配置数据源

首页找到 DATA SOURCES 选项,点击。

选择InfluxDB 选项,点击。

配置 NameURLDatabase,配置完成后,点击 Save and Check ,如果成功会有绿色提示。

设置模板id

在左侧菜单栏找到 Dashboards ,点击最下面 Import,开始模板导入。
模板导入共有三种方式:

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

可以通过 Grafana Forum 查看并搜索模板。
推荐模板:

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

配置好 id 和数据源后,点击 import 即可。

注意: 如果我们修改过表名,也就是在jmeter的Backend Listener的measurement配置(默认为jmeter),这个时候就需要去设置中进行修改,我这里使用的就是默认的,所以无需修改。

Grafana 配置 Prometheus

Prometheus 操作相同,不再赘述。

推荐模板 id:

  • Node Exporter for Prometheus Dashboard EN 20201010
    • dashboard-ID: 11074
  • Node Exporter Dashboard
    • dashboard-ID: 16098
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值