Artifactory前端服务不可用问题求助
Artifactory前端无法访问但后端Docker操作正常的排查方案
问题概述
- 症状:Artifactory前端页面无法正常加载,但后端Docker镜像拉取/推送操作可正常执行
- 已尝试操作:重新创建容器,问题未解决
- 核心报错日志:
2023-04-06T13:45:02.839Z [jfmd ] [ERROR] [hash] [server_bearer.go:95 ] [main ] - Failed to create/update server info, err: servers find by id failed, cannot find server with id (7c73fd201be3) 2023-04-06T13:45:25.594Z [jfrt ] [ERROR] [hash] [yMetadataClientConfigStore:122] [art-init ] - Unable to request the Metadata Service Service-Id: Failed executing api/v1/system/service_id, with response code: HTTP/1.1 404 Not Found and response message: Not Found
日志分析
报错指向Metadata Service(jfmd)与Artifactory(jfrt)之间的通信异常:
- jfmd无法找到指定ID的服务器记录,说明元数据服务的内部数据可能损坏
- jfrt请求jfmd的
service_id接口返回404,导致前端依赖的元数据服务无法正常提供支持,最终引发前端加载失败
解决方案
检查Metadata Service容器状态
用docker ps查看jfmd容器是否正常运行,有无频繁重启情况。若容器异常,查看详细日志定位启动问题:docker logs <jfmd-container-id>重置Metadata Service持久化数据(需备份)
元数据服务的持久化数据损坏是常见诱因,操作前务必备份数据:# 停止jfmd容器 docker stop <jfmd-container-id> # 备份数据目录 cp -r /path/to/jfmd/data /path/to/jfmd/data_backup # 清空数据目录 rm -rf /path/to/jfmd/data/* # 重启jfmd容器 docker start <jfmd-container-id>强制同步Artifactory与Metadata Service配置
进入Artifactory容器执行配置同步命令,修复服务ID匹配问题:docker exec -it <jfrt-container-id> /opt/jfrog/artifactory/bin/artifactoryctl reconfigure验证容器网络连通性
确认jfrt和jfmd容器处于同一Docker网络,测试互相访问:# 在jfrt容器内测试访问jfmd接口 docker exec -it <jfrt-container-id> curl http://jfmd:8081/api/v1/system/service_id
内容的提问来源于stack exchange,提问作者pozhilou
相关产品推荐
相关产品推荐

