本文介绍如何在日志服务控制台上配置数据加工语法和预览配置,实现数据加工通过内网访问RDS数据库。

前提条件

  • 已创建与日志服务Project属于同一地域的RDS实例。
    说明 该功能支持跨账号访问,您在创建RDS实例时,请设置复杂度高的用户名和密码。
  • 已设置IP地址段白名单(固定设置为100.104.0.0/16),详情请参见设置白名单
  • 已在日志服务的查询页面,开启数据加工功能。

操作步骤

  1. 登录日志服务控制台
  2. 单击目标Project。
  3. 日志管理 > 日志库页签中,单击目标Logstore左侧的小图标-001,选择数据处理 > 加工
  4. 单击加工右侧的+
  5. 在输入框中输入加工语法,如下图所示。
    说明 通过内网访问RDS数据库,请严格遵循以下语法,请勿使用其他加工语法。
    e_table_map(res_rds_mysql(str_format("{}:{}",res_local("config.vpc.instance_id.test1"),res_local("config.vpc.instance_port.test1")), "数据库账号", "数据库密码", "数据库名称",table="数据库表名"), "field", "output_fields")
  6. 单击预览数据
  7. 添加预览配置对话框中,配置如下内容,单击确定
    添加预览配置
    参数 说明
    AccessKey ID 您的阿里云账户的AccessKey ID。
    AccessKey Secret 您的阿里云账户的AccessKey Secret。
    高级参数配置 高级参数配置参数中,请根据实际情况,添加config.vpc.vpc_id.{name}、config.vpc.instance_id.{name}和config.vpc.instance_port.{name},您可以从RDS管理控制台获取对应的信息。
    说明 同一个配置中,{name}必须配置一致,例如统一为test1。
    • config.vpc.vpc_id.{name},表示RDS实例所属的专有网络ID,例如:config.vpc.vpc_id.test1:vpc-uf6mskb0b****n9yj。
    • config.vpc.instance_id.{name},RDS实例ID,例如:config.vpc.instance_id.test1:rm-uf6e61k****ahd7。
    • config.vpc.instance_port.{name},RDS实例的端口号,例如:config.vpc.instance_port.test1:3306。

错误排查

  • RDS白名单未配置

    如果提示reason: {"errorCode": "InvalidConfig", "errorMessage": "error when calling : res_rds_mysql\nDetail: {\"errorCode\": \"InvalidConfig\", \"errorMessage\": \"Database connection failed, cause: (2003, \\\"Can't connect to MySQL server on '192.168.1.1' (timed out)\\\")\\nDetail: None\", \"requestId\": \"\"}", "requestId": ""}错误,表示数据加工授权后台授权VPC映射已经成功,但是因为RDS没有配置白名单,导致无法连接到数据库。

  • 高级参数配置错误
    • 高级参数配置中name不一致

      如果提示reason: {"errorCode": "InvalidConfig", "errorMessage": "error when calling : res_rds_mysql\nDetail: {\"errorCode\": \"InvalidConfig\", \"errorMessage\": \"address check failed, please check the configuration of address. address: rm-bp***r5\\nDetail: None\", \"requestId\": \"\"}", "requestId": ""}错误,表示config.vpc.instance_port.{name}中的{name}与config.vpc.vpc_id.{name}、config.vpc.instance_id.{name}中的{name}设置不一致。

    • 参数配置不完整

      如果提示reason: {"errorCode": "InvalidConfig", "errorMessage": "error when calling : res_rds_mysql\nDetail: {\"errorCode\": \"InvalidConfig\", \"errorMessage\": \"address check failed, please check the configuration of address. address: rm-bp1***9r5\\nDetail: None\", \"requestId\": \"\"}", "requestId": ""}错误,表示缺少config.vpc.vpc_id.{name}配置信息。

  • 加工语句错误

    如果提示reason: {"errorCode": "InvalidConfig", "errorMessage": "error when calling : res_rds_mysql\nDetail: {\"errorCode\": \"InvalidConfig\", \"errorMessage\": \"Database connection failed, cause: (2003, \\\"Can't connect to MySQL server on 'rm-bp***r5.mysql.rds.aliyuncs.com' (timed out)\\\")\\nDetail: None\", \"requestId\": \"\"}", "requestId": ""}错误,表示使用了错误的加工语法。