dataworks查询ECS自建数据库不走内网的排查?
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。
在排查DataWorks查询ECS自建数据库不走内网的问题时,需要从网络配置、安全组设置、白名单配置等多个方面进行检查。以下是详细的排查步骤:
确保DataWorks与ECS自建数据库之间的网络是连通的。如果未使用内网连接,可能需要通过公网访问。
确认是否使用公网:
如果数据库和DataWorks不在同一个VPC(虚拟私有云)或地域(Region),则可能需要通过公网访问。
检查独享资源组的EIP配置:
如果通过公网访问,需将独享资源组的EIP(弹性公网IP)添加到ECS自建数据库的白名单中。
注意事项:
公网访问会产生流量费用,请参考相关计费说明。
安全组是控制ECS实例网络访问的重要机制。如果安全组未正确配置,可能导致DataWorks无法访问ECS自建数据库。
获取交换机网段:
如果通过内网访问,需将独享资源组绑定的交换机网段添加到ECS的安全组入方向规则中。
检查公网访问的安全组规则:
如果通过公网访问,需将独享资源组的EIP地址添加到ECS的安全组入方向规则中。
数据库的白名单配置决定了哪些IP地址可以访问数据库。如果白名单未正确配置,可能导致连接失败。
内网访问的白名单配置:
如果通过内网访问,需将独享资源组绑定的交换机网段添加到数据库的白名单中。
公网访问的白名单配置:
如果通过公网访问,需将独享资源组的EIP地址添加到数据库的白名单中。
注意事项:
扩容资源组后,EIP可能会发生变化,请及时更新数据库的白名单配置。
确保数据库服务已启动并监听正确的地址。
Linux系统检查方法:
使用命令netstat -antp | grep 数据库端口
检查数据库是否监听全网地址(0.0.0.0)。如果仅监听本地地址(127.0.0.1),则需修改配置文件,使其监听全网地址。
Windows系统检查方法:
使用命令netstat -ano | find "数据库端口"
检查数据库是否监听全网地址(0.0.0.0)。如果仅监听本地地址(127.0.0.1),则需修改配置文件,使其监听全网地址。
确保用于连接数据库的用户具有远程访问权限。
GRANT ALL PRIVILEGES ON *.* TO '用户名'@'%' IDENTIFIED BY '密码';
FLUSH PRIVILEGES;
其中,%
表示允许所有IP地址访问。如果需要限制特定IP地址,请替换为具体IP地址。
确保任务执行时使用的资源组类型正确。
查看任务执行的资源组类型:
在DataWorks的日志中查看任务执行的资源组类型。如果任务未使用独享资源组,则可能导致网络不通。
绑定资源组到工作空间:
确保独享资源组已绑定到对应的工作空间中。如果未绑定,任务可能无法正常执行。
如果以上步骤均无误,但仍无法连接,可进一步排查以下问题:
检查路由配置:
确保独享资源组绑定的VPC中已正确添加路由指向ECS所在VPC的网段。
测试连通性:
使用工具(如telnet)测试独享资源组与ECS数据库之间的连通性。例如:
telnet ECS_IP 数据库端口
查看日志信息:
检查DataWorks任务日志和ECS数据库日志,定位具体的错误原因。
通过以上步骤,您可以逐步排查并解决DataWorks查询ECS自建数据库不走内网的问题。
DataWorks基于MaxCompute/Hologres/EMR/CDP等大数据引擎,为数据仓库/数据湖/湖仓一体等解决方案提供统一的全链路大数据开发治理平台。