MeterSphere服务常见网络连接问题汇总


Administrator
飞致云 发布于 2022-12-12 / 1658 阅读 / 0 评论 /
MeterSphere 作为一站式持续测试平台,其正常运行需要网络环境提供如下的网络端口配置要求,管理员可根据实际环境中 MeterSphere 组件部署的方案,在网络侧和主机侧开放相关端口。网络端口要求如下。组件默认端口说明Node Controller8082为接口或者性能测试提供独立节点类型的

MeterSphere 作为多组件的应用系统,其正常运行需要开通相应的网络端口,以实现组件之间的服务响应和调用。具体网络端口要求如下:

组件 默认端口 说明
Node Controller 8082 为接口或者性能测试提供独立节点类型的测试资源池
Prometheus 9090 收集压力机及被测系统的监控数据
Node Exporter 9100 用于采集 Node 的运行指标
Selenium Grid 4444 为 UI自动化测试提供运行环境,支持分布式拓展
TCP Mock 10000-10010 TCP Mock 对外提供服务需要开放的端口范围
MySQL 3307 MeterSphere 默认安装的数据库对外提供的端口
Redis 6379 MeterSphere 默认安装的 Redis 对外提供的端口
Minio 9000 MeterSphere 默认安装的分布式对象存储对外提供的端口
Kafka 9092 MeterSphere 默认安装的消息中间件对外提供的端口
GateWay 8081 API 网关项目,浏览器访问端口

如果各组件的端口没有开放,组件之间服务无法调用,将造成 MeterSphere 无法正常访问或响应。以下将针对目前 MeterSphere 常见的网络链路相关问题现象以及解决方法进行总结。

问题1:容器状况都正常,但是在浏览器中无法访问 http://$LOCAL_IP:8081?

处理方法:在终端telnet ms服务 ip及端口是否通畅,若不通关闭ms服务器防火墙,具体步骤:
(1)查看防火墙状态 :systemctl status firewalld
(2)关闭防火墙 :systemctl stop firewalld
(3)禁用开机自启防火墙:systemctl disable firewalld
(4)修改防火墙后重启容器: systemctl restart docker
(5)重启ms服务 :msctl restart
如果不允许直接关闭防火墙则开启对应端口访问权限如:
iptables -I INPUT -p tcp --dport 8081 -j ACCEPT
若通,先清空浏览器缓存或者重启浏览器或者以无痕方式进行访问。

问题2:接口测试返回提示:Non HTTP response code: org.apache.http.conn.ConnectTimeoutException

image-1670828569702
处理方法同上:检查ms服务 telnet被测服务的网路 ip 端口 是否通畅
关闭ms服务防火墙或者开启被测服务相关端口访问权限

问题3:安装环境容器启动报错,查看容器日志连不上报错提示 exception; nested exception is org.redisson.client.RedisConnectionException: Unable to connect to Redis server: 172.168.xx.xxx/172.168.1xx.1xx?

image-1670828587116
处理方法:确认 /opt/metersphere/.env文件默认配置的是linux本机IP,这个ip就不在我们的docker 网络内,有可能受防火墙影响,配置为容器名使用metersphere-network 避免受影响。
修改metersphere/.env配置,设置redis_host=redis ,再执行msctl reload。

问题4:性能测试:提示kafka不可用;或者性能测试报告页面一直处理开始状态不展示报告。

image-1670828608441
tail -200 /opt/metersphere/logs/data-streaming/info.log 日志提示kafka连不上

处理方法:由于 MeterSphere 性能测试使用到容器组件JMeter测试执行的测试结果回传给 kafka,再通过 data-streaming 做计算汇聚为报告;因此要检查 kafka 和 data-streaming 能否正常通信。
(1)测试容器链接 kafka 是否通畅:docker exec ms-data-streaming nc -zv 172.22.xx.xx 9093
(2)不能通信检查对应容器访问端口是否开放:
iptables -I INPUT -p tcp --dport 9092 -j ACCEPT
(3)如果修改过相关配置文件端口:检查/opt/metersphere 安装目录下
确认docker-compose-kafka.yml 与.env 监听的端口是否一致,对内端口默认9092 对外端口默认9093;如果修改了相关端口内容,请保证两个文件修改内容一致,一般改对外端口。
image-1670828665977

问题5:mysql修改端口后链接不上:如:本地有mysql占用了3306,meterspere的install.conf中改成了3406 但是ms-server一直无法连接数据库

处理方法:
(1)修改/opt/metersphere目录下的docker-compose-mysql.yml,把对外端口改成3406。然后修改.env里mysql_host=具体的IP,mysql_port=3406,最后再执行 msctl reload。
(2)注意:yml文件里左边是对外端口,右边是容器内端口;一般改对外端口。
(3)如果mysql_host设置为具体IP,mysql_host就用对外端口。如果mysql_host=mysql,mysql_host就用容器内端口
image-1670828692492

问题6:虚拟机安装环境,一段时间后虚拟机ip变化了。查看容器日志发现kafka 、redis连不上了。

解决方法:修改/opt/meterspher目录下.env文件。将 kafka 和 redis 改为当前虚拟机的 ip 地址后执行 msctl reload 。
image-1670828716825



是否对你有帮助?