1 环境要求 {#1-%E7%8E%AF%E5%A2%83%E8%A6%81%E6%B1%82}
得益于 Docker 跨平台应用,MeterSphere 理论上可以部署在任何可以运行 Docker 的宿主机。
我们并非是只支持 Linux 操作系统,我们是支持可以部署 Docker 的任意 x86_64 的宿主机(Windows / Linux / macOS)。
本文将以 Windows 10 为例介绍如何在 Windows 10 上安装 MeterSphere。
注意:
云虚拟机可能不支持,需要嵌套虚拟化
物理机可以,Hyper-V 支持嵌套虚拟化
部署服务器要求:
操作系统: 可运行 Docker 的 Windows 操作系统
CPU/内存: 4核8G
磁盘空间: 200G
2 安装部署 {#2-%E5%AE%89%E8%A3%85%E9%83%A8%E7%BD%B2}
2.1 安装 WSL {#2.1-%E5%AE%89%E8%A3%85-wsl}
参考在 Windows 10 上安装 WSL | Microsoft Docs此问题,进行 Windows 宿主机的配置。
使用管理员身份运行:
dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart
dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart
重启操作系统
下载适用于 x64 计算机的 WSL2 Linux 内核更新包
2.2 设置 WSL2 为默认 {#2.2-%E8%AE%BE%E7%BD%AE-wsl2-%E4%B8%BA%E9%BB%98%E8%AE%A4}
以管理员身份执行:
wsl --set-default-version 2
2.3 安装 Ubuntu {#2.3-%E5%AE%89%E8%A3%85-ubuntu}
在 Windows 10 的应用商店里搜索"Ubuntu"并安装:
2.4 检测 Ubuntu WSL 版本 {#2.4-%E6%A3%80%E6%B5%8B-ubuntu-wsl-%E7%89%88%E6%9C%AC}
以管理员身份执行:
wsl.exe -l -v
示例中安装的 Ubuntu Name 为 "Ubuntu", 如像上图出现 Ubuntu 版本为 1, 则继续执行命令:
wsl.exe --set-version Ubuntu 2
出现下图结果即为成功:
2.5 安装 Docker {#2.5-%E5%AE%89%E8%A3%85-docker}
下载Docker Desktop for Windows,如果使用的是 macOS,Install Docker Desktop on Mac | Docker Documentation。
2.6 Docker 设置 {#2.6-docker-%E8%AE%BE%E7%BD%AE}
Docker Desktop 安装完成后,进入 Settings 界面,选择 Resources 菜单下的 WSL INTEGRATION,按下图设置后,点击右下角的 Apply & Restart 即可。
2.7 下载安装包 {#2.7-%E4%B8%8B%E8%BD%BD%E5%AE%89%E8%A3%85%E5%8C%85}
请自行下载 MeterSphere 最新版本的离线安装包:
安装包下载链接: https://community.fit2cloud.com/#/products/metersphere/downloads
2.8 启动 Ubuntu {#2.8-%E5%90%AF%E5%8A%A8-ubuntu}
在应用商店里,选择 Ubuntu,点击"启动"按钮启动 Ubuntu,并执行命令切换到 root 用户:
sudo su -
2.9 检查 Docker 环境 {#2.9-%E6%A3%80%E6%9F%A5-docker-%E7%8E%AF%E5%A2%83}
在 Ubuntu 命令行中执行命令:
docker version
如能像下图一样正常显示 docker 版本信息,则能正常执行 MeterSphere 后续的安装操作,如出现异常,请根据提示信息解决异常问题。
2.10 解压安装包 {#2.10-%E8%A7%A3%E5%8E%8B%E5%AE%89%E8%A3%85%E5%8C%85}
在 Ubuntu 中,以 root 用户执行如下命令:
# 假设安装包存放路径为 c:\metersphere-offline-installer-v1.20.4-lts.tar.gz
cd /mnt/c
# 解压安装包
tar zxvf metersphere-offline-installer-v1.20.4-lts.tar.gz
2.11 配置安装参数(可选) {#2.11-%E9%85%8D%E7%BD%AE%E5%AE%89%E8%A3%85%E5%8F%82%E6%95%B0%EF%BC%88%E5%8F%AF%E9%80%89%EF%BC%89}
安装配置文件说明, 如果无特殊需求可以不进行修改采用默认参数安装
MeterSphere 支持以配置文件的形式来设置安装参数,如安装目录、服务运行端口、数据库配置参数等,安装前修改安装包中的 install.conf 文件可完成配置。
具体参数说明见:安装配置文件说明
2.12 执行安装脚本 {#2.12-%E6%89%A7%E8%A1%8C%E5%AE%89%E8%A3%85%E8%84%9A%E6%9C%AC}
# 进入安装包目录
cd metersphere-offline-installer-v1.20.4-lts
# 运行安装脚本
/bin/bash install.sh
注意:
/opt/metersphere/
├── bin #-- 安装过程中需要加载到容器中的脚本
├── compose_files #-- 根据不同的安装模式,保存需要使用到的 compose 文件信息
├── conf #-- MeterSphere 各组件及数据库等中间件的配置文件
├── data #-- MeterSphere 各组件及数据库等中间件的数据持久化目录
├── docker-compose-base.yml #-- MeterSphere 基础 Docker Compose 文件,定义了网络等基础信息
├── docker-compose-kafka.yml #-- MeterSphere 自带的 Kafka 所需的 Docker Compose 文件
├── docker-compose-mysql.yml #-- MeterSphere 自带的 MySQL 所需的 Docker Compose 文件
├── docker-compose-node-controller.yml #-- MeterSphere Node-Controller 组件所需的 Docker Compose文件
├── docker-compose-server.yml #-- MeterSphere Server 及 Data-Streaming 所需的 Docker Compose文件
├── docker-compose-redis.yml #-- MeterSphere Redis 组件所需的 Docker Compose文件
├── docker-compose-prometheus.yml #-- MeterSphere Prometheus 组件所需的Docker Compose 文件
├── install.conf -> /opt/metersphere/.env #-- MeterSphere 的配置文件 /opt/metersphere/.env 的软链接
├── logs #-- MeterSphere 各组件的日志文件持久化目录
└── version #-- 安装包对应的 MeterSphere 版本信息
安装成功后,通过浏览器访问如下页面登录 MeterSphere
地址: http://目标服务器IP地址:服务运行端口
用户名: admin
密码: metersphere
3 常见问题及解决方式 {#3-%E5%B8%B8%E8%A7%81%E9%97%AE%E9%A2%98%E5%8F%8A%E8%A7%A3%E5%86%B3%E6%96%B9%E5%BC%8F}
3.1 创建容器失败,找不到文件或目录 {#3.1-%E5%88%9B%E5%BB%BA%E5%AE%B9%E5%99%A8%E5%A4%B1%E8%B4%A5%EF%BC%8C%E6%89%BE%E4%B8%8D%E5%88%B0%E6%96%87%E4%BB%B6%E6%88%96%E7%9B%AE%E5%BD%95}
解决方法:
将metersphere目录下的docker-compose-*.yml里的volumes都按照下面要求进行修改。(windows下的docker不要用单独的volumes定义,将下面路径写到上面,下面volumes部分可删)
3.2 执行安装脚本时,出现Container is unhealthy {#3.2-%E6%89%A7%E8%A1%8C%E5%AE%89%E8%A3%85%E8%84%9A%E6%9C%AC%E6%97%B6%EF%BC%8C%E5%87%BA%E7%8E%B0container-is-unhealthy}
解决方法:
1.执行命令 docker logs "23c9a9217da8",如下图查看发现是没有权限
2.将挂载目录为由原来的/bitnami改为/data,重新执行/bin/bash install.sh
3.3 执行安装脚本,安装启动都没有报错,msctl status出现health:starting,之后docker ps -a发现promethus容器是Restarting状态 {#3.3-%E6%89%A7%E8%A1%8C%E5%AE%89%E8%A3%85%E8%84%9A%E6%9C%AC%EF%BC%8C%E5%AE%89%E8%A3%85%E5%90%AF%E5%8A%A8%E9%83%BD%E6%B2%A1%E6%9C%89%E6%8A%A5%E9%94%99%EF%BC%8Cmsctl-status%E5%87%BA%E7%8E%B0health%3Astarting%EF%BC%8C%E4%B9%8B%E5%90%8Edocker-ps--a%E5%8F%91%E7%8E%B0promethus%E5%AE%B9%E5%99%A8%E6%98%AFrestarting%E7%8A%B6%E6%80%81}
解决方法:
1.查看日志(docker logs containsId),如下图发现是promethus目录下的文件没有权限
2.手动给promethus目录赋权,之后重新执行安装脚本的命令。
chmod +777 /opt/metersphere/conf/promethus
chmod +777 /opt/metersphere/data/promethus
3.4 执行msctl status,发现ms-server状态是health:staring状态,访问前端也访问不了 {#3.4-%E6%89%A7%E8%A1%8Cmsctl-status%EF%BC%8C%E5%8F%91%E7%8E%B0ms-server%E7%8A%B6%E6%80%81%E6%98%AFhealth%3Astaring%E7%8A%B6%E6%80%81%EF%BC%8C%E8%AE%BF%E9%97%AE%E5%89%8D%E7%AB%AF%E4%B9%9F%E8%AE%BF%E9%97%AE%E4%B8%8D%E4%BA%86}
解决方法:
1.查看/opt/metersphere/logs/info.log日志,如下图发现是redis连接有问题
2.修改/opt/metersphere/.env文件,将redis/kafka的ip换成本机ip,执行msctl reload后再执行msctl status,发现容器都正常启动。输入 http://IP:8081 可以正常访问网站。