使用Docker Compose安装Xray对接JFrog Artifactory故障求助
Xray与JFrog Artifactory集成问题排查方案
问题1:Xray Router每20秒重启排查
按以下顺序排查:
- 先拉取Router容器运行日志定位根因,执行命令:
docker logs <xray-router容器ID>,优先确认是否存在RabbitMQ/PostgreSQL连接失败、配置文件读取错误类报错 - 核对自定义项目名的网络连通性:你启动RabbitMQ、PostgreSQL时指定了
-p自定义项目前缀,Docker默认生成的容器网络名称会携带该前缀,需确认Xray核心服务的Docker Compose配置中,已正确加入RabbitMQ、PostgreSQL所在的Docker网络,否则Xray无法通过服务名解析到这两个依赖组件 - 验证依赖服务可用性:在主机上分别执行命令验证连通性:
验证PostgreSQL:telnet <PostgreSQL容器IP> 5432,同时使用config.sh配置的数据库账号密码尝试登录,确认权限正常
验证RabbitMQ:telnet <RabbitMQ容器IP> 5672,使用配置的RabbitMQ账号密码登录,确认vhost权限正常 - 检查主机资源限制:Amazon Linux 2默认文件打开数限制较低,执行
ulimit -n确认返回值不低于65535,若低于该值可临时执行ulimit -n 65535后重启所有服务验证
问题2:Xray Server报错找不到Binary Manager排查
该报错核心原因是Xray未成功与Artifactory完成实例绑定,数据库中无对应Artifactory实例记录,按以下步骤排查:
- 验证版本兼容性:Xray与Artifactory大版本必须匹配,例如Artifactory 7.x需搭配Xray 3.x,跨大版本会直接导致绑定失败
- 核对绑定凭证配置:检查Xray配置文件
system.yaml中的以下配置项:jfrogUrl:需填写Artifactory的私有IP访问地址,末尾不要加斜杠masterKey:必须与Artifactory节点的master key完全一致joinKey:必须与Artifactory节点的join key完全一致
以上任意凭证错误都会导致Xray无法通过Artifactory的身份校验,无法完成实例注册
- 验证接口连通性:进入Xray Server容器内部,执行以下命令:
验证基础连通性:curl -u <Artifactory管理员账号>:<密码> http://<Artifactory私有IP>/artifactory/api/system/ping,正常应返回OK
验证版本获取正常:curl http://<Artifactory私有IP>/artifactory/api/system/version,正常应返回Artifactory版本信息 - 重新触发绑定:若以上配置均正确,停止所有Xray服务,清空Xray对应的PostgreSQL数据库(操作前注意备份数据),再按顺序重启RabbitMQ、PostgreSQL、Xray核心服务,等待3-5分钟后查看日志是否恢复正常
- 手动绑定实例:如果自动绑定失败,可登录Artifactory管理后台,进入「管理员」-「集成」-「Xray」页面,手动填写Xray实例访问地址与joinKey完成绑定,绑定成功后再查看Xray日志确认报错消失
内容的提问来源于stack exchange,提问作者praseeb kdas
相关产品推荐
相关产品推荐

