部署MeterSphere分布式环境

部署MeterSphere分布式环境

由于性能测试所需并发量大,压力机不止一台,所以考虑使用MeterSphere的分布式部署方案。

部署MeterSphere分布式环境_第1张图片

1.准备机器

准备3台虚拟机当做压力机slave,ip分别为192.1.1.11,192.1.1.12和192.1.1.13。一台虚拟机当做控制器Web端master,ip为192.1.1.10。

去MeterSpere官网下载离线安装包,访问网址https://github.com/metersphere/metersphere/releases,本次选择v1.8.0版本进行安装。链接:https://pan.baidu.com/s/1LNquYhdZ-I4Q586j0Ifl9A,提取码:lgnz。

下载一份metersphere-release-v1.8.0-offline.tar.gz到虚拟机192.1.1.10目录/var/softwares下面,然后远程拷贝到192.1.1.11,192.1.1.12和192.1.1.13下面。

2.设置路径权限

这个是把metersphere-release-v1.8.0-offline.tar.gz去解压/var/softwares/metersphere目录,要把权限掩码设置为0022:

# umask 0022

加这个参数可以看清楚是什么权限:

# umask -S
u=rwx,g=rx,o=rx

运行完可以看出:所有者是读写执行权限,组用户是读执行权限,其它用户是读执行权限

解压metersphere-release-v1.8.0-offline.tar.gz文件:

# tar -xvzf metersphere-release-v1.8.0-offline.tar.gz -C ./metersphere

如果运行ls -ll后发现文件夹metersphere-release-v1.8.0-offline没有执行权限,需要接着运行下面命令赋予执行权限:

# ls -ll /var/softwares/metersphere/
drwxr-xr-x 5 root   root   4096 3月  30 13:35 metersphere-release-v1.8.0-offline
# sudo chmod -R 755 /var/softwares/metersphere/

3.免密访问设置

首先在每个Linux虚拟机,运行ssh-keygen生成秘钥文件,~代表你Linux虚拟机上的个人登录home目录:

# cd ~/.ssh
# ssh-keygen

一路回车后可以看到有私钥文件id_rsa,公钥文件id_rsa.pub生成。

接着是拷贝公钥到远程主机,当初因为没有留意这个问题,这是一个疏漏点,切记。如果配置不当,在v1.7.3版本安装后总是报错:

# Non HTTP response code: org.apache.http.conn.HttpHostConnectException

Master要给每个Slave发送调度命令和传输脚本,接着每个Slave要回传压测数据给Master上的Kafka,所以使用如下命令把Master和Slave的公钥互相拷贝至~/.ssh/authorized_keys里:

# ssh-copy-id <主机名或ip>

使用vi命令查看Master或Slave虚拟机里面的~/.ssh/authorized_keys文件里互相有对方公钥即可。

**注:**增加一个小知识,ssh会把你每个访问过计算机的公钥(public key)都记录在~/.ssh/known_hosts。当下次访问相同计算机时,OpenSSH会核对公钥。如果公钥不同,OpenSSH会发出警告, 避免你受到DNS Hijack之类的攻击。

4.Master安装

在/var/softwares/metersphere/metersphere-release-v1.8.0-offline文件夹下,找到install.conf,打开后确定安装模式为allinone:

MS_MODE=allinone

然后执行命令:

# sudo sh quick_start.sh

控制台信息由于重启机器,没有保存下来,只有一个较早版本v1.7.3安装截屏

部署MeterSphere分布式环境_第2张图片

运行检查状态命令:

# sudo msctl status

       Name                     Command                  State                           Ports
-------------------------------------------------------------------------------------------------------------------
kafka                /opt/bitnami/scripts/kafka ...   Up (healthy)   0.0.0.0:19092->19092/tcp, 9092/tcp
ms-data-streaming    /deployments/run-java.sh         Up (healthy)   0.0.0.0:8084->8084/tcp, 0.0.0.0:8085->8085/tcp
ms-node-controller   /deployments/run-java.sh         Up (healthy)   0.0.0.0:8082->8082/tcp
ms-server            /deployments/run-java.sh         Up (healthy)   0.0.0.0:8081->8081/tcp
mysql                docker-entrypoint.sh mysqld      Up (healthy)   0.0.0.0:3307->3306/tcp, 33060/tcp
zookeeper            /opt/bitnami/scripts/zooke ...   Up (healthy)   2181/tcp, 2888/tcp, 3888/tcp, 8080/tcp

**注:**状态显示healthy表示正常,如果是starting就需要等等,或是exited说明有问题。

5.Slave安装

在/var/softwares/metersphere/metersphere-release-v1.8.0-offline文件夹下,找到install.conf,打开后确定安装模式为allinone:

MS_MODE=node-controller

然后执行命令:

# sudo sh quick_start.sh

控制台信息如下:

--2021-03-31 18:06:08--  https://github.com/metersphere/metersphere/releases/latest/download/metersphere-release-.tar.gz
正在解析主机 github.com (github.com)... 52.74.223.119
正在连接 github.com (github.com)|52.74.223.119|:443... 失败:拒绝连接。
tar (child): metersphere-release-.tar.gz:无法 open: 没有那个文件或目录
tar (child): Error is not recoverable: exiting now
tar: Child returned status 2
tar: Error is not recoverable: exiting now
quick_start.sh: 第 15 行:cd: metersphere-release-: 没有那个文件或目录
======================= 开始安装 =======================
time: 2021年 03月 31日 星期三 18:06:22 CST
[MeterSphere Log]: 检测到 Docker 已安装,跳过安装步骤
[MeterSphere Log]: 启动 Docker
Redirecting to /bin/systemctl start docker.service
[MeterSphere Log]: 检测到 Docker Compose 已安装,跳过安装步骤
[MeterSphere Log]: 加载镜像
Loaded image: registry.cn-qingdao.aliyuncs.com/metersphere/jmeter-master:5.3-ms15
Loaded image: registry.cn-qingdao.aliyuncs.com/metersphere/kafka:2
Loaded image: registry.cn-qingdao.aliyuncs.com/metersphere/metersphere:v1.8.0
Loaded image: registry.cn-qingdao.aliyuncs.com/metersphere/ms-data-streaming:v1.8.0
Loaded image: registry.cn-qingdao.aliyuncs.com/metersphere/ms-node-controller:v1.8.0
Loaded image: registry.cn-qingdao.aliyuncs.com/metersphere/mysql:5.7.25
Loaded image: registry.cn-qingdao.aliyuncs.com/metersphere/zookeeper:3
[MeterSphere Log]: 启动服务
Removing network metersphere_ms-network
Removing volume metersphere_ms-conf
Removing volume metersphere_ms-logs
Removing volume metersphere_ms-data
Removing volume metersphere_ms-jmeter-data
Creating network "metersphere_ms-network" with the default driver
Creating volume "metersphere_ms-conf" with default driver
Creating volume "metersphere_ms-logs" with default driver
Creating volume "metersphere_ms-data" with default driver
Creating volume "metersphere_ms-jmeter-data" with default driver
no such image: registry.cn-qingdao.aliyuncs.com/metersphere/ms-node-controller:: invalid reference format

Name   Command   State   Ports
------------------------------
======================= 安装完成 =======================

请通过以下方式访问:
 URL: http://$LOCAL_IP:8081
 用户名: admin
 初始密码: metersphere
您可以使用命令 'msctl status' 检查服务运行情况.

运行检查状态命令:

# sudo msctl status

       Name                  Command               State               Ports
-------------------------------------------------------------------------------------
ms-node-controller   /deployments/run-java.sh   Up (healthy)   0.0.0.0:8082->8082/tcp

**注:**状态显示healthy表示正常,如果是starting就需要等等,或是exited说明有问题。

6.添加资源

登录任何一台机器的浏览器,访问http://localhost:8081或http://:8081访问web端,用户名admin,密码metersphere。

访问【系统设置】->【系统】->【测试资源池】,单击【创建资源池】,配置Jmeter HEAP的JVM运行参数和GC策略:

部署MeterSphere分布式环境_第3张图片

同时添加Slave压力机,填写IP,Port和最大并发数。

添加后,注意【测试资源池】页面会显示修改成功提示信息,如果发现【启用/禁用】选项没有高亮显示紫色,需要点击那个开关使刚才设置的压力资源生效,否则是不能在压测过程中使用刚才配置的压力资源的。

部署MeterSphere分布式环境_第4张图片

7.升级

如果安装完之后有版本升级,可以通过运行以下命令升级Master和Slave:

# sudo msctl upgrade

因为我是全新安装的v1.8.0所以并没有进行升级。但是一定确保Master和Slave的版本要一致。

8.开始分布式压测

点击【性能测试】->【创建测试】:

部署MeterSphere分布式环境_第5张图片

点击【场景配置】->【加载JMX文件】->【上传JMX文件】添加压测脚本:

部署MeterSphere分布式环境_第6张图片

这里上传的是bzm - Concurrency Thread Group阶梯发压线程组脚本,令人惊奇的是MeterSphere居然自动识别出来了,然后点击【压力配置】标签页设置发压参数设置,比如选择资源池,并发用户数,时长等:

部署MeterSphere分布式环境_第7张图片

第3个标签页是【高级配置】,我暂时没有用到,以后会介绍这个,来个截图吧。

部署MeterSphere分布式环境_第8张图片

好了,点击【保存并执行】按钮,过一会MeterSphere切换至报告页面,展示压测实时数据如下:

【测试概览】标签页

部署MeterSphere分布式环境_第9张图片

【请求统计】标签页

部署MeterSphere分布式环境_第10张图片

【错误记录】标签页

部署MeterSphere分布式环境_第11张图片

【日志详情】标签页

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-部署MeterSphere分布式环境_第12张图片
如果你想快速搭建一个压测平台,MeterSphere无疑是最有效的开源工具,感兴趣的朋友不妨试试!感谢MeterSphere的团队的无私奉献!

你可能感兴趣的:(MeterSphere)