离线安装

1 环境要求

部署服务器要求

  • 操作系统: CentOS 7.x / Redhat 7.x
  • CPU/内存: 最低要求 4C8G,推荐 8C16G
  • 磁盘空间: 50G

2 下载安装包

请自行下载 MeterSphere 最新版本的离线安装包,并复制到目标机器的 /tmp 目录下。

安装包下载链接: https://community.fit2cloud.com/#/products/metersphere/downloads

3 解压安装包

以 root 用户 ssh 登录到目标机器, 并执行如下命令。

  1. cd /tmp
  2. # 解压安装包
  3. tar zxvf metersphere-offline-installer-v2.3.0.tar.gz

4 修改安装配置(可选)

4.1 解压

在安装包解压后的目录,编辑修改安装参数。

  1. cd metersphere-offline-installer-v2.3.0
  2. vim install.conf

4.2 安装配置文件说明

安装配置文件说明, 如果无特殊需求可以不进行修改采用默认参数安装(首次安装可修改配置 install.conf 文件中相关配置,修改完后执行 /bin/bash install.sh 命令进行安装,已安装成功如需再修改配置参数,可以直接到 ${MS_BASE}/metersphere/.env 里修改,修改完后执行 msctl reload 即即可重新加载配置文件)

  1. # 基础配置
  2. ## 安装路径, MeterSphere 配置及数据文件默认将安装在 ${MS_BASE}/metersphere 目录下
  3. MS_BASE=/opt
  4. ## MeterSphere 使用的 docker 网络网段信息
  5. MS_DOCKER_SUBNET=172.30.10.0/24
  6. ## 镜像前缀, MeterSphere 相关组件使用的 Docker 镜像前缀, 例如 registry.cn-qingdao.aliyuncs.com/metersphere
  7. MS_IMAGE_PREFIX=registry.cn-qingdao.aliyuncs.com/metersphere
  8. ## 镜像标签, MeterSphere 相关组件使用的 Docker 镜像标签
  9. MS_IMAGE_TAG=v2.3.0
  10. ## 性能测试使用的 JMeter 镜像
  11. MS_JMETER_IMAGE=${MS_IMAGE_PREFIX}/jmeter-master:5.5-ms2-jdk11
  12. ## 安装模式 allinone | server | node-controller | selenium-hub, 其中 selenium-hub 和 node-controller 可以单独在服务器上部署作为执行机使用
  13. MS_INSTALL_MODE=allinone
  14. ## MeterSphere 主程序的 HTTP 服务监听端口
  15. MS_SERVER_PORT=8081
  16. ## MeterSphere Node-Controller 组件的 HTTP 服务监听端口
  17. MS_NODE_CONTROLLER_PORT=8082
  18. MS_NODEEXPORTER_PORT=9100
  19. # 数据库配置
  20. ## 是否使用外部数据库
  21. MS_EXTERNAL_MYSQL=false
  22. ## 数据库地址
  23. MS_MYSQL_HOST=mysql
  24. ## 数据库端口
  25. MS_MYSQL_PORT=3306
  26. ## 数据库库名
  27. MS_MYSQL_DB=metersphere
  28. ## 数据库用户名
  29. MS_MYSQL_USER=root
  30. ## 数据库密码
  31. MS_MYSQL_PASSWORD=Password123@mysql
  32. # Prometheus 配置
  33. ## 是否使用外部Prometheus
  34. MS_EXTERNAL_PROM=false
  35. MS_PROMETHEUS_PORT=9090
  36. # Redis 配置
  37. ## 是否使用外部Redis
  38. MS_EXTERNAL_REDIS=false
  39. ## Redis 端口
  40. MS_REDIS_PORT=6379
  41. ## Redis 密码
  42. MS_REDIS_PASSWORD=Password123@redis
  43. ## Redis地址
  44. MS_REDIS_HOST=$(hostname -I|cut -d" " -f 1)
  45. # Kafka 配置
  46. ## 是否使用外部 Kafka
  47. MS_EXTERNAL_KAFKA=false
  48. ## Kafka 地址
  49. MS_KAFKA_HOST=10.1.*.*
  50. ## Kafka 端口
  51. MS_KAFKA_PORT=9092
  52. ## 性能测试结果数据使用的 Kafka Topic
  53. MS_KAFKA_TOPIC=JMETER_METRICS
  54. ## 性能测试日志数据使用的 Kafka Topic
  55. MS_KAFKA_LOG_TOPIC=JMETER_LOGS
  56. ## 性能测试定时任务通知使用的 Kafka Topic
  57. MS_KAFKA_TEST_TOPIC=LOAD_TESTS
  58. ## 重构后性能测试结果数据使用的 Kafka Topic
  59. MS_KAFKA_REPORT_TOPIC=JMETER_REPORTS
  60. # UI容器配置
  61. ## 是否启动UI模块
  62. MS_UI_ENABLED=false
  63. ## 是否启动工作台容器
  64. MS_WORKSTATION_ENABLED=false
  65. # minio 配置
  66. ## 是否使用外部minio
  67. MS_EXTERNAL_MINIO=false
  68. ## minio 地址
  69. MS_MINIO_ENDPOINT=http://minio:9000
  70. ## minio access
  71. MS_MINIO_ACCESS_KEY=admin
  72. ## minio 密码
  73. MS_MINIO_SECRET_KEY=Password123@minio
  74. # 修改组件最大内存限制(v2.7以上可以在 /opt/metersphere/.env 里修改某容器服务的最大内存限制,在/opt/metersphere/ 目录下的docker-compose分别定义各自服务的最大属性值,如 api-test 的属性在 docker-compose-api-test.yml 中定义,为 MS_API_MEM_LIMIT)
  75. MS_API_MEM_LIMIT=1073741824(默认为 1g

4.3 数据库配置文件说明

注意

MeterSphere 使⽤ MySQL 8.0 对系统数据进⾏存储。同时 MeterSphere 对数据库部分配置项有要求,请参考下附的数据库配置,修改环境中的数据库配置文件。

  1. [mysqld]
  2. datadir=/var/lib/mysql
  3. default-storage-engine=INNODB
  4. character_set_server=utf8mb4
  5. lower_case_table_names=1
  6. performance_schema=off
  7. table_open_cache=128
  8. transaction_isolation=READ-COMMITTED
  9. max_connections=1000
  10. max_connect_errors=6000
  11. max_allowed_packet=64M
  12. innodb_file_per_table=1
  13. innodb_buffer_pool_size=512M
  14. innodb_flush_method=O_DIRECT
  15. innodb_lock_wait_timeout=1800
  16. server-id=1
  17. log-bin=mysql-bin
  18. expire_logs_days = 2
  19. binlog_format=mixed
  20. character-set-client-handshake = FALSE
  21. character-set-server=utf8mb4
  22. collation-server=utf8mb4_general_ci
  23. init_connect='SET default_collation_for_utf8mb4=utf8mb4_general_ci'
  24. sql_mode=STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION
  25. skip-name-resolve
  26. [mysql]
  27. default-character-set=utf8mb4
  28. [mysql.server]
  29. default-character-set=utf8mb4

请参考文档中的建库语句创建 MeterSphere 使用的数据库,metersphere-server 服务启动时会自动在配置的库中创建所需的表结构及初始化数据。

  1. CREATE DATABASE `metersphere` /*!40100 DEFAULT CHARACTER SET utf8mb4 */

安装脚本默认使用 /opt/metersphere 目录作为安装目录,MeterSphere 的配置文件、数据及日志等均存放在该安装目录。

4.4 安装目录结构说明

安装目录结构说明

  1. /opt/metersphere/
  2. ├── bin #-- 安装过程中需要加载到容器中的脚本
  3. ├── compose_files #-- 根据不同的安装模式,保存需要使用到的 compose 文件信息
  4. ├── conf #-- MeterSphere 各组件及数据库等中间件的配置文件
  5. ├── data #-- MeterSphere 各组件及数据库等中间件的数据持久化目录
  6. ├── docker-compose-gateway.yml #-- MeterSphere 的 API 网关
  7. ├── docker-compose-eureka.yml #-- MeterSphere 的服务注册中心
  8. ├── docker-compose-base.yml #-- MeterSphere 基础 Docker Compose 文件,定义了网络等基础信息
  9. ├── docker-compose-workstation.yml #-- MeterSphere 工作台模块的 Docker Compose 文件
  10. ├── docker-compose-test-track.yml #-- MeterSphere 测试跟踪模块的 Docker Compose 文件
  11. ├── docker-compose-api-test.yml #-- MeterSphere 接口测试模块的 Docker Compose 文件
  12. ├── docker-compose-ui-test.yml #-- MeterSphere UI 测试模块的 Docker Compose 文件
  13. ├── docker-compose-performance-test.yml #-- MeterSphere 性能测试模块的 Docker Compose 文件
  14. ├── docker-compose-report-stat.yml #-- MeterSphere 报表统计模块的 Docker Compose 文件
  15. ├── docker-compose-project-management.yml #-- MeterSphere 项目管理模块的 Docker Compose 文件
  16. ├── docker-compose-system-setting.yml #-- MeterSphere 系统设置模块的 Docker Compose 文件
  17. ├── docker-compose-kafka.yml #-- MeterSphere 自带的 Kafka 所需的 Docker Compose 文件
  18. ├── docker-compose-mysql.yml #-- MeterSphere 自带的 MySQL 所需的 Docker Compose 文件
  19. ├── docker-compose-node-controller.yml #-- MeterSphere Node-Controller 组件所需的 Docker Compose文件
  20. ├── docker-compose-redis.yml #-- MeterSphere Redis 组件所需的 Docker Compose文件
  21. ├── docker-compose-minio.yml #-- MeterSphere 自带的分布式对象存储服务
  22. ├── docker-compose-prometheus.yml #-- MeterSphere Prometheus 组件所需的Docker Compose 文件
  23. ├── install.conf -> /opt/metersphere/.env #-- MeterSphere 的配置文件 /opt/metersphere/.env 的软链接
  24. ├── logs #-- MeterSphere 各组件的日志文件持久化目录
  25. └── version #-- 安装包对应的 MeterSphere 版本信息

5 执行安装脚本

  1. # 进入安装包目录
  2. cd metersphere-offline-installer-v2.3.0
  3. # 运行安装脚本
  4. /bin/bash install.sh

执行完安装脚本后,会安装镜像,等提示安装完成后,可以用 msctl status 查看服务各个组件状态 服务状态

等待2分钟至各个组件都是 healthy 状态后,可通过浏览器访问如下页面登录 MeterSphere。

  1. 请通过以下方式访问:
  2. URL: http://$LOCAL_IP:8081
  3. 用户名: admin
  4. 初始密码: metersphere
  5. 企业用户升级后需手动设置 install.conf 中的 MS_UI_ENABLED=true MS_WORKSTATION_ENABLED=true 并执行 'msctl reload' 来开启UI和工作台功能
  6. 您可以使用命令 'msctl status' 检查服务运行情况.

6 配置反向代理

注意

如果需要使用 Nginx、Haproxy 等反向代理,需要配置反向代理对 websocket 的支持。以 Nginx 为例,参考的配置内容如下。

  1. server {
  2. listen 80;
  3. server_name demo.metersphere.com;
  4. server_tokens off;
  5. return 301 https://$host$request_uri;
  6. }
  7. server {
  8. listen 443 ssl;
  9. # RSA certificate
  10. ssl_certificate /etc/nginx/ssl/metersphere.com/fullchain.cer; # managed by Certbot
  11. ssl_certificate_key /etc/nginx/ssl/metersphere.com/metersphere.com.key; # managed by Certbot
  12. server_name demo.metersphere.com;
  13. proxy_connect_timeout 300;
  14. proxy_send_timeout 300;
  15. proxy_read_timeout 300;
  16. send_timeout 300;
  17. proxy_set_header Host $host;
  18. proxy_set_header X-Forwarded-For $remote_addr;
  19. proxy_set_header X-Forwarded-Host $server_name;
  20. proxy_set_header X-Real-IP $remote_addr;
  21. proxy_set_header X-Forwarded-Proto $scheme;
  22. proxy_redirect http:// $scheme://;
  23. location / {
  24. proxy_pass http://ip:8081;
  25. client_max_body_size 1000m;
  26. #access_log off;
  27. # 配置 websocket 支持
  28. proxy_http_version 1.1;
  29. proxy_set_header Upgrade $http_upgrade;
  30. proxy_set_header Connection "upgrade";
  31. }
  32. }