Jumpserver网域内数据库资产连通性测试问题排查与解决

Jumpserver网域内数据库资产连通性测试问题排查与解决

【免费下载链接】JumpServer 广受欢迎的开源堡垒机 【免费下载链接】JumpServer 项目地址: https://gitcode.com/feizhiyun/jumpserver

问题背景

在使用Jumpserver 4.7.0社区版进行资产管理时,用户发现了一个关于网域内数据库资产连通性测试的问题。当创建网域、网关并添加网域内数据库资产后,进行资产连通性测试时会出现失败的情况,但在Web终端中连接却是正常的。

环境信息

该问题出现在基于Docker的部署环境中,具体为使用Debian 12系统,通过jumpserver/Dockerfile中的swarm整合compose.yml方式进行部署。

问题分析

经过技术排查,发现问题的根本原因在于Jumpserver的架构设计。数据库连通性测试实际上是通过Celery异步任务来执行的,而不是直接通过Web服务。

在Docker Swarm部署环境下,ANSIBLE_RECEPTOR_GATEWAY_PROXY_HOST环境变量的默认值为"jms_celery"。这个值指向了Celery服务的内部网络名称。然而,在某些部署配置中,这个默认值可能无法正确解析到实际的Celery服务。

解决方案

要解决这个问题,需要修改ANSIBLE_RECEPTOR_GATEWAY_PROXY_HOST环境变量的值,将其设置为实际的Celery服务名称。具体操作步骤如下:

  1. 确定部署环境中Celery服务的实际名称
  2. 在部署配置中设置环境变量:ANSIBLE_RECEPTOR_GATEWAY_PROXY_HOST=你的Celery服务名称
  3. 重新部署服务使配置生效

技术原理

Jumpserver的网域功能通过网关实现网络隔离环境下的资产访问。当进行资产连通性测试时:

  1. Web界面发起测试请求
  2. 请求被转发到Celery异步任务队列
  3. Celery worker接收任务并通过指定的网关进行连接测试
  4. 如果网关代理主机配置不正确,测试请求无法正确路由到网关

注意事项

这种问题通常只在特定的Docker部署方式下出现,常规部署一般不会遇到此类问题。用户在部署Jumpserver时,应该注意:

  1. 了解不同部署方式的网络配置差异
  2. 确保所有服务间的网络连通性
  3. 正确配置环境变量,特别是涉及服务发现的相关配置

总结

通过正确配置ANSIBLE_RECEPTOR_GATEWAY_PROXY_HOST环境变量,可以解决网域内数据库资产连通性测试失败的问题。这个案例提醒我们,在容器化部署环境中,服务发现和网络配置是确保系统正常运行的关键因素,需要根据实际的部署环境进行适当的调整。

【免费下载链接】JumpServer 广受欢迎的开源堡垒机 【免费下载链接】JumpServer 项目地址: https://gitcode.com/feizhiyun/jumpserver

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值