环境要求

!!! info “部署服务器要求”

  1. * 操作系统: CentOS 7.x
  2. * CPU/内存: 48G
  3. * 磁盘空间: 50G

下载安装包

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

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

解压安装包

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

  1. cd /tmp
  2. # 解压安装包
  3. tar zxvf metersphere-release-v1.0.3-offline.tar.gz

修改安装配置(可选)

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

  1. cd metersphere-release-v1.0.3-offline
  2. vim install.conf

!!! info “安装配置文件说明, 如果无特殊需求可以不进行修改采用默认参数安装”

  1. ```vim
  2. # 基础配置
  3. ## 安装路径, MeterSphere 配置及数据文件默认将安装在 ${MS_BASE}/metersphere 目录下
  4. MS_BASE=/opt
  5. ## MeterSphere 使用的 docker 网络网段信息
  6. MS_DOCKER_SUBNET=172.30.10.0/24
  7. ## 镜像前缀, MeterSphere 相关组件使用的 Docker 镜像前缀, 例如 registry.cn-qingdao.aliyuncs.com/metersphere
  8. MS_IMAGE_PREFIX=registry.cn-qingdao.aliyuncs.com/metersphere
  9. ## 镜像标签, MeterSphere 相关组件使用的 Docker 镜像标签
  10. MS_IMAGE_TAG=v1.19.1
  11. ## 性能测试使用的 JMeter 镜像
  12. MS_JMETER_IMAGE=${MS_IMAGE_PREFIX}/jmeter-master:5.4.3-ms4-jdk8
  13. ## 安装模式
  14. MS_INSTALL_MODE=allinone
  15. ## MeterSphere 主程序的 HTTP 服务监听端口
  16. MS_SERVER_PORT=8081
  17. ## MeterSphere Node-Controller 组件的 HTTP 服务监听端口
  18. MS_NODE_CONTROLLER_PORT=8082
  19. MS_NODEEXPORTER_PORT=9100
  20. # 数据库配置
  21. ## 是否使用外部数据库
  22. MS_EXTERNAL_MYSQL=false
  23. ## 数据库地址
  24. MS_MYSQL_HOST=mysql
  25. ## 数据库端口
  26. MS_MYSQL_PORT=3306
  27. ## 数据库库名
  28. MS_MYSQL_DB=metersphere
  29. ## 数据库用户名
  30. MS_MYSQL_USER=root
  31. ## 数据库密码
  32. MS_MYSQL_PASSWORD=Password123@mysql
  33. # Prometheus 配置
  34. ## 是否使用外部Prometheus
  35. MS_EXTERNAL_PROM=false
  36. MS_PROMETHEUS_PORT=9090
  37. # Redis 配置
  38. ## 是否使用外部Redis
  39. MS_EXTERNAL_REDIS=false
  40. ## Redis 端口
  41. MS_REDIS_PORT=6379
  42. ## Redis 密码
  43. MS_REDIS_PASSWORD=Password123@redis
  44. ## Redis地址
  45. MS_REDIS_HOST=$(hostname -I|cut -d" " -f 1)
  46. # Kafka 配置
  47. ## 是否使用外部 Kafka
  48. MS_EXTERNAL_KAFKA=false
  49. ## Kafka 地址
  50. MS_KAFKA_HOST=10.1.*.*
  51. ## Kafka 端口
  52. MS_KAFKA_PORT=9092
  53. ## 性能测试结果数据使用的 Kafka Topic
  54. MS_KAFKA_TOPIC=JMETER_METRICS
  55. ## 性能测试日志数据使用的 Kafka Topic
  56. MS_KAFKA_LOG_TOPIC=JMETER_LOGS
  57. ## 性能测试定时任务通知使用的 Kafka Topic
  58. MS_KAFKA_TEST_TOPIC=LOAD_TESTS
  59. ## 重构后性能测试结果数据使用的 Kafka Topic
  60. MS_KAFKA_REPORT_TOPIC=JMETER_REPORTS
  61. # TCP MOCK 端口范围
  62. MS_TCP_MOCK_PORT=10000-10010
  63. # Chrome 容器配置
  64. ## 是否启动Chrome容器
  65. MS_CHROME_ENABLED=false
  66. ```

!!! info “注意” 如果使用外部数据库进行安装,推荐使用 MySQL 5.7 版本。同时 MeterSphere 对数据库部分配置项有要求,请参考下附的数据库配置,修改环境中的数据库配置文件

  1. ```
  2. [mysqld]
  3. default-storage-engine=INNODB
  4. lower_case_table_names=1
  5. table_open_cache=128
  6. max_connections=2000
  7. max_connect_errors=6000
  8. innodb_file_per_table=1
  9. innodb_buffer_pool_size=1G
  10. max_allowed_packet=64M
  11. transaction_isolation=READ-COMMITTED
  12. innodb_flush_method=O_DIRECT
  13. innodb_lock_wait_timeout=1800
  14. innodb_flush_log_at_trx_commit=0
  15. sync_binlog=0
  16. server-id=1
  17. log-bin=mysql-bin
  18. expire_logs_days = 2
  19. binlog_format=mixed
  20. sql_mode=STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION
  21. skip-name-resolve
  22. ```
  23. 请参考文档中的建库语句创建 MeterSphere 使用的数据库,metersphere-server 服务启动时会自动在配置的库中创建所需的表结构及初始化数据。
  24. ```mysql
  25. CREATE DATABASE `metersphere` /*!40100 DEFAULT CHARACTER SET utf8mb4 */
  26. ```

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

!!! info “安装目录目录结构说明”

  1. ```
  2. /opt/metersphere/
  3. ├── bin #-- 安装过程中需要加载到容器中的脚本
  4. ├── compose_files #-- 根据不同的安装模式,保存需要使用到的 compose 文件信息
  5. ├── conf #-- MeterSphere 各组件及数据库等中间件的配置文件
  6. ├── data #-- MeterSphere 各组件及数据库等中间件的数据持久化目录
  7. ├── docker-compose-base.yml #-- MeterSphere 基础 Docker Compose 文件,定义了网络等基础信息
  8. ├── docker-compose-kafka.yml #-- MeterSphere 自带的 Kafka 所需的 Docker Compose 文件
  9. ├── docker-compose-mysql.yml #-- MeterSphere 自带的 MySQL 所需的 Docker Compose 文件
  10. ├── docker-compose-node-controller.yml #-- MeterSphere Node-Controller 组件所需的 Docker Compose文件
  11. ├── docker-compose-server.yml #-- MeterSphere Server 及 Data-Streaming 所需的 Docker Compose文件
  12. ├── docker-compose-redis.yml #-- MeterSphere Redis 组件所需的 Docker Compose文件
  13. ├── docker-compose-prometheus.yml #-- MeterSphere Prometheus 组件所需的Docker Compose 文件
  14. ├── install.conf -> /opt/metersphere/.env #-- MeterSphere 的配置文件 /opt/metersphere/.env 的软链接
  15. ├── logs #-- MeterSphere 各组件的日志文件持久化目录
  16. └── version #-- 安装包对应的 MeterSphere 版本信息
  17. ```

执行安装脚本

  1. # 进入安装包目录
  2. cd metersphere-release-v1.0.3-offline
  3. # 运行安装脚本
  4. /bin/bash install.sh
  5. # 等待安装脚本执行完成后,查看 MeterSphere 状态
  6. msctl status

安装成功后,通过浏览器访问如下页面登录 MeterSphere

  1. 地址: http://目标服务器IP地址:8081
  2. 用户名: admin
  3. 密码: metersphere

配置反向代理

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

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