全新安装 MeterSphere v2.10.5-LTS 离线包出错

从官网下载 MeterSphere v2.10.5-LTS 离线包,上传CentOS 7.9服务器,然后解压,修改 install.conf 文件(主要是端口),如下:

MeterSphere 主程序的 HTTP 服务监听端口

MS_SERVER_PORT=8081

MeterSphere Node-Controller 组件的 HTTP 服务监听端口

MS_NODE_CONTROLLER_PORT=58082
MS_NODE_EXPORTER_PORT=59100

数据库配置

是否使用外部数据库

MS_EXTERNAL_MYSQL=false

数据库地址

MS_MYSQL_HOST=$(hostname -I|cut -d" " -f 1)

数据库端口

MS_MYSQL_PORT=53306

数据库库名

MS_MYSQL_DB=metersphere

数据库用户名

MS_MYSQL_USER=root

数据库密码

MS_MYSQL_PASSWORD=MeterSphere@MySQL

Prometheus 配置

是否使用外部Prometheus

MS_EXTERNAL_PROM=false
MS_PROMETHEUS_PORT=59090

Redis 配置

是否使用外部Redis

MS_EXTERNAL_REDIS=false

Redis 端口

MS_REDIS_PORT=56379

Redis 密码

MS_REDIS_PASSWORD=MeterSphere@Prom

Redis地址

MS_REDIS_HOST=$(hostname -I|cut -d" " -f 1)

Kafka 配置

是否使用外部 Kafka

MS_EXTERNAL_KAFKA=false

Kafka 地址

MS_KAFKA_HOST=$(hostname -I|cut -d" " -f 1)

Kafka 端口

MS_KAFKA_PORT=59092

性能测试结果数据使用的 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

TCP MOCK 端口范围

MS_TCP_MOCK_PORT=10000-10010

UI容器配置

是否启动UI模块

MS_UI_ENABLED=false

是否使用外部grid

MS_EXTERNAL_SELENIUM=false

minio 配置

是否使用外部minio

MS_EXTERNAL_MINIO=false

minio 地址

MS_MINIO_ENDPOINT=http://minio:59000

minio access

MS_MINIO_ACCESS_KEY=admin

minio 密码

MS_MINIO_SECRET_KEY=MeterSphere@Minio

docker gid

MS_DOCKER_GID=$(getent group docker | cut -f3 -d:)

同时修改 metersphere 目录下的 docker-compose-*.yml 文件中的端口映射,执行 install.sh 进行安装,顺畅执行到 :
Container system-setting Starting
Container system-setting Started
Container system-setting Waiting
Container system-setting Waiting
Container system-setting Waiting
Container system-setting Waiting
Container system-setting Waiting
Container system-setting Waiting
后等待较久,然后直接报错,报错截图如下:
2023-08-23_155600

请问:自定义端口方式安装 MeterSphere 的这个问题该如何解决?

不一定是端口问题,这里并没有报错端口被占用。
需要查看下system-setting这个容器的日志。

对于端口的使用,我是根据系统端口占用情况,避开默认端口被占用而配置的。

奇怪的是,如果用全新的私有云服务器来安装,就可以成功安装。两相对比,差别就只有端口的差别,是某个容器对端口使用上有限制吗?

截图是system-setting 容器的日志信息,安装错误仍然是:

Container redis Healthy
Container mysql Healthy
Container system-setting Starting
Container system-setting Started
Container system-setting Waiting
Container system-setting Waiting
Container system-setting Waiting
Container system-setting Waiting
Container system-setting Waiting
Container system-setting Waiting
Container system-setting Error
Container system-setting Error
Container system-setting Error
Container system-setting Error
Container system-setting Error
Container system-setting Error
dependency failed to start: container system-setting is unhealthy

请问这个错误怎么解决?自定义端口是不允许的吗?

看起来数据库连接错误了,你改数据库是修改了什么地方?

修改了端口为43306,还修改了config目录里my.cnf的内存设置。

1 个赞

你修改的地方,能截图看看吗?以及msctl status截图看看mysql的状态。

看起来参数修改的问题:/opt/metersphere/.env文件里面的53306端口改回3306,然后将/opt/metersphere/docker-compose-mysql.yml里面的3306:3306 修改为53306:3306,保存后执行msctl reload

我试一试。谢谢。

完整安装和配置如下:(出错)
1、重新下载官方 MeterSphere v2.10.6-LTS 离线包,上传到服务器,解压到 /data/metersphere
2、修改 install.conf 文件,修改所有端口(每个端口数字前插入数字 5)
完整如下:

基础配置

安装路径, MeterSphere 配置及数据文件默认将安装在 ${MS_BASE}/metersphere 目录下

MS_BASE=/data/metersphere

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.10.6-lts

性能测试使用的 JMeter 镜像

MS_JMETER_IMAGE=${MS_IMAGE_PREFIX}/jmeter-master:5.5-ms6-jdk17

安装模式 allinone | server | node-controller | selenium-hub | middleware | task-runner

MS_INSTALL_MODE=allinone

MeterSphere 主程序的 HTTP 服务监听端口

MS_SERVER_PORT=58081

MeterSphere Node-Controller 组件的 HTTP 服务监听端口

MS_NODE_CONTROLLER_PORT=58082
MS_NODE_EXPORTER_PORT=59100

数据库配置

是否使用外部数据库

MS_EXTERNAL_MYSQL=false

数据库地址

MS_MYSQL_HOST=$(hostname -I|cut -d" " -f 1)

数据库端口

MS_MYSQL_PORT=53306

数据库库名

MS_MYSQL_DB=metersphere

数据库用户名

MS_MYSQL_USER=root

数据库密码

MS_MYSQL_PASSWORD=MeterSphere2023

Prometheus 配置

是否使用外部Prometheus

MS_EXTERNAL_PROM=false
MS_PROMETHEUS_PORT=59090

Redis 配置

是否使用外部Redis

MS_EXTERNAL_REDIS=false

Redis 端口

MS_REDIS_PORT=56379

Redis 密码

MS_REDIS_PASSWORD=MeterSphere2023

Redis地址

MS_REDIS_HOST=$(hostname -I|cut -d" " -f 1)

Kafka 配置

是否使用外部 Kafka

MS_EXTERNAL_KAFKA=false

Kafka 地址

MS_KAFKA_HOST=$(hostname -I|cut -d" " -f 1)

Kafka 端口

MS_KAFKA_PORT=59092

性能测试结果数据使用的 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

TCP MOCK 端口范围

MS_TCP_MOCK_PORT=10000-10010

UI容器配置

是否启动UI模块

MS_UI_ENABLED=false

是否使用外部grid

MS_EXTERNAL_SELENIUM=false

minio 配置

是否使用外部minio

MS_EXTERNAL_MINIO=false

minio 地址

MS_MINIO_ENDPOINT=http://minio:59000

minio access

MS_MINIO_ACCESS_KEY=admin

minio 密码

MS_MINIO_SECRET_KEY=MeterSphere2023

docker gid

MS_DOCKER_GID=$(getent group docker | cut -f3 -d:)

说明:因服务器端口 8082、9000、3306、9090 端口被其它服务占用,故将 MeterSphere 端口设置为5xxxx范围,方便管理。

3、修改 my.cnf 文件(默认配置的 max_allowed_packet 和 innodb_buffer_pool_size 参数实在太小)
完整如下:

[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=512M
innodb_file_per_table=1
innodb_buffer_pool_size=4096M
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

4、修改docker-compose-minio.yml :(端口固定为 9000:9000,非参数方式,所以必须手动修改,否则 minio 报错端口被占用)
完整如下:

version: ‘2.1’
services:
minio:
image: ${MS_IMAGE_PREFIX}/minio:RELEASE.2023-04-13T03-08-07Z
container_name: minio
hostname: “minio”
ports:
- ‘59000:9000’
- ‘59001:9001’
healthcheck:
test: [ “CMD”, “curl”, “-f”, “http://localhost:9001” ]
interval: 6s
timeout: 10s
retries: 50
environment:
MINIO_ACCESS_KEY: ${MS_MINIO_ACCESS_KEY}
MINIO_SECRET_KEY: ${MS_MINIO_SECRET_KEY}
volumes:
- ms-minio-data:/data
networks:
- ms-network
command: server --console-address ‘:9001’ /data
privileged: true
restart: always
mem_limit: ${MS_MINIO_MEM_LIMIT:-1073741824} # default 1g bytes

volumes:
ms-minio-data:
driver_opts:
type: none
device: ${MS_BASE}/metersphere/data/minio
o: bind

5、执行 install.sh,界面报错截图:

查看 system-setting 容器日志,错误开始出现的地方截图:

执行 msctl status 查看状态截图:

以上为安装的所有操作。求助各位大咖和有经验的同学,如何解决自定义端口安装的问题。谢谢。


请问你的数据库密码是手动在配置文件里修改过吗?

默认密码是Password123@mysql。
如果要修改mysql密码,在配置文件里改是不生效的。
配置文件的密码只是一个连接配置,而不是真实修改了密码。
如果要修改mysql密码,需要登录mysql,然后手动修改密码,然后再改配置文件。

我在另外一台新建的私有云服务器上,安装的时候也修改了这个默认密码,成功安装,可以使用。

安装前修改 install.conf 文件中的默认密码,安装成功后,用修改的密码登录数据库,是可以登录数据库的。

因为首次安装时会根据这个密码初始化数据库,所以第一次改密码是可以的,首次之后再改是不行的。
你可以再验证下现在的数据库密码是多少,然后.env文件里使用目前能手动连接上的密码。
我看到你现在用的密码是MeterSphere2023,可以试试手动用这个密码能否登录数据库。

我在另外一台新建的私有云服务器上,安装前修改了这几个密码,不修改端口,可以成功安装,.env 文件里也是这个修改的密码,还可以用这个修改的密码手动备份Docker里的数据库。所以说修改的密码不是问题关键。

另外,我还测试把配置文件里每个的Docker容器内外端口、服务端口都批量修改了,但安装还是报system-setting问题。

折腾了不下10次了,算了,保留默认端口,只修改密码,不折腾了。

如果继续折腾,可以加下我,远程看看。
image

请问这个问题解决了吗,遇到了相同的问题。

还没解决,自定义端口方式不可行,默认端口不冲突的话,就可以安装成功。

你需要修改/opt/metersphere/.env文件,看报错是未连接数据库,检查下.env文件数据库连接信息是否正确