确认安装服务器是否有MySQL、redis、kafka等软件,端口是否被占用,容器的名称是否重复。
1、metersphere简介
- MeterSphere 是一站式的开源持续测试平台,遵循 GPL v3 开源许可协议,涵盖测试管理、接口测试、UI 测试和性能测试等功能,全面兼容 JMeter、Selenium 等主流开源标准,有效助力开发和测试团队充分利用云弹性进行高度可扩展的自动化测试,加速高质量的软件交付。
2、安装部署
-
下载在线安装包
wget https://cdn0-download-offline-installer.fit2cloud.com/metersphere/release/metersphere-offline-installer-v2.10.9-lts.tar.gz
-
解压在线安装包
tar -zxvf metersphere-offline-installer-v2.10.9-lts.tar.gz
-
进入解压目录
cd metersphere-offline-installer-v2.10.9-lts.tar.gz
-
配置安装参数,参数说明见下文
vi install.conf
-
执行install.sh安装脚本
/bin/bash install.sh
-
执行完安装脚本后,会在线拉取镜像,等提示安装完成后,使用 msctl status 查看服务各个组件状态
msctl status
3、访问
-
请通过以下方式访问
URL: http://服务器IP:8081 用户名: admin 初始密码: metersphere
4、配置说明
-
如果无特殊需求可以不进行修改采用默认参数安装(首次安装可修改配置 install.conf 文件中相关配置,修改完后执行 /bin/bash install.sh 命令进行安装,已安装成功如需再修改配置参数,需要到 ${MS_BASE}/metersphere/.env 里修改,修改完后执行 msctl reload 即可重新加载配置文件)。
# 基础配置 ## 安装路径, MeterSphere 配置及数据文件默认将安装在 ${MS_BASE}/metersphere 目录下 MS_BASE=/opt ## MeterSphere 使用的 docker 网络网段信息 MS_DOCKER_SUBNET=172.30.10.0/24 ## 镜像前缀, MeterSphere 相关组件使用的 Docker 镜像前缀, 例如 registry.cn- qingdao.aliyuncs.com/metersphere MS_IMAGE_PREFIX=registry.cn-qingdao.aliyuncs.com/metersphere ## 镜像标签, MeterSphere 相关组件使用的 Docker 镜像标签 MS_IMAGE_TAG=v2.3.0 ## 性能测试使用的 JMeter 镜像 MS_JMETER_IMAGE=${MS_IMAGE_PREFIX}/jmeter-master:5.5-ms2-jdk11 ## 安装模式 allinone | server | node-controller | selenium-hub, 其中 selenium-hub 和 node-controller 可以单独在服务器上部署作为执行机使用 MS_INSTALL_MODE=allinone ## MeterSphere 主程序的 HTTP 服务监听端口 MS_SERVER_PORT=8081 ## MeterSphere Node-Controller 组件的 HTTP 服务监听端口 MS_NODE_CONTROLLER_PORT=8082 MS_NODEEXPORTER_PORT=9100 # 数据库配置 ## 是否使用外部数据库 MS_EXTERNAL_MYSQL=false ## 数据库地址 MS_MYSQL_HOST=mysql ## 数据库端口 MS_MYSQL_PORT=3306 ## 数据库库名 MS_MYSQL_DB=metersphere ## 数据库用户名 MS_MYSQL_USER=root ## 数据库密码 MS_MYSQL_PASSWORD=Password123@mysql # Prometheus 配置 ## 是否使用外部Prometheus MS_EXTERNAL_PROM=false MS_PROMETHEUS_PORT=9090 # Redis 配置 ## 是否使用外部Redis MS_EXTERNAL_REDIS=false ## Redis 端口 MS_REDIS_PORT=6379 ## Redis 密码 MS_REDIS_PASSWORD=Password123@redis ## Redis地址 MS_REDIS_HOST=$(hostname -I|cut -d" " -f 1) # Kafka 配置 ## 是否使用外部 Kafka MS_EXTERNAL_KAFKA=false ## Kafka 地址 MS_KAFKA_HOST=10.1.*.* ## Kafka 端口 MS_KAFKA_PORT=9092 ## 性能测试结果数据使用的 Kafka Topic MS_KAFKA_TOPIC=JMETER_METRICS ## 性能测试日志数据使用的 Kafka Topic MS_KAFKA_LOG_TOPIC=JMETER_LOGS ## 性能测试定时任务通知使用的 Kafka Topic MS_KAFKA_TEST_TOPIC=LOAD_TESTS ## 重构后性能测试结果数据使用的 Kafka Topic MS_KAFKA_REPORT_TOPIC=JMETER_REPORTS # UI容器配置 ## 是否启动UI模块 MS_UI_ENABLED=false ## 是否启动工作台容器 MS_WORKSTATION_ENABLED=false # minio 配置 ## 是否使用外部minio MS_EXTERNAL_MINIO=false ## minio 地址 MS_MINIO_ENDPOINT=http://minio:9000 ## minio access MS_MINIO_ACCESS_KEY=admin ## minio 密码 MS_MINIO_SECRET_KEY=Password123@minio # 修改组件最大内存限制(v2.7以上可以在 /opt/metersphere/.env 里修改某容器服务的最大内存限制,在/opt/metersphere/ 目录下的docker-compose分别定义各自服务的最大属性值,如 api-test 的属性在 docker-compose-api-test.yml 中定义,为 MS_API_MEM_LIMIT) MS_API_MEM_LIMIT=1073741824(默认为 1g)
5、数据库配置文件说明
-
MeterSphere 使⽤ MySQL 8.0 对系统数据进⾏存储。同时 MeterSphere 对数据库部分配置项有要求,请参考下附的数据库配置,修改环境中的数据库配置文件。
[mysqld] datadir=/var/lib/mysql default-storage-engine=INNODB character_set_server=utf8mb4 lower_case_table_names=1 performance_schema=off table_open_cache=128 transaction_isolation=READ-COMMITTED max_connections=1000 max_connect_errors=6000 max_allowed_packet=64M innodb_file_per_table=1 innodb_buffer_pool_size=512M innodb_flush_method=O_DIRECT innodb_lock_wait_timeout=1800 server-id=1 log-bin=mysql-bin expire_logs_days = 2 binlog_format=mixed character-set-client-handshake = FALSE character-set-server=utf8mb4 collation-server=utf8mb4_general_ci init_connect='SET default_collation_for_utf8mb4=utf8mb4_general_ci' sql_mode=STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION skip-name-resolve [mysql] default-character-set=utf8mb4 [mysql.server] default-character-set=utf8mb4
-
请参考文档中的建库语句创建 MeterSphere 使用的数据库,metersphere-server 服务启动时会自动在配置的库中创建所需的表结构及初始化数据
CREATE DATABASE `metersphere` /*!40100 DEFAULT CHARACTER SET utf8mb4 */
6、配置反向代理
-
如果使用了 Nginx、HAProxy 进行反向代理配置,需要增加对 websocket 的支持。以 Nginx 为例,参考配置如下:
server { listen 80; server_name demo.metersphere.com; server_tokens off; return 301 https://$host$request_uri; } server { listen 443 ssl; # RSA certificate ssl_certificate /etc/nginx/ssl/metersphere.com/fullchain.cer; # managed by Certbot ssl_certificate_key /etc/nginx/ssl/metersphere.com/metersphere.com.key; # managed by Certbot server_name demo.metersphere.com; proxy_connect_timeout 300; proxy_send_timeout 300; proxy_read_timeout 300; send_timeout 300; proxy_set_header Host $host; proxy_set_header X-Forwarded-For $remote_addr; proxy_set_header X-Forwarded-Host $server_name; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-Proto $scheme; proxy_redirect http:// $scheme://; location / { proxy_pass http://ip:8081; client_max_body_size 1000m; #access_log off; #配置 websocket 支持 proxy_http_version 1.1; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection "upgrade"; } }
7、如何卸载
先停止正在运行的 MeterSphere 容器,然后再删除容器,最后删除应用数据目录以及 docker 环境等,具体操作见如下命令
-
先停止正在运行的 MeterSphere 容器,然后再删除容器
msctl uninstall
-
卸载应用数据
rm -rf /opt/metersphere rm -rf /usr/local/bin/msctl rm -rf ~/.msrc
-
卸载 docker 和 docker-compose
systemctl stop docker rm -rf /usr/bin/docker* rm -rf /usr/bin/containerd* rm -rf /usr/bin/ctr rm -rf /usr/bin/runc rm -rf /etc/systemd/system/docker.service systemctl daemon-reload