跳到主要内容

配置 AWS 外部采集来源

AWS 外部采集来源适用于从 AWS 托管数据库侧补充采集慢日志。当前支持 AWS RDS MySQL 和 AWS RDS PostgreSQL。其中,AWS RDS MySQL 通过 RDS 实例日志接口读取慢日志文件,不依赖 CloudWatch 日志导出。

前提条件​

  • 已创建或加入组织,并且该组织已开通数据库 DevOps 专业版或数据库 DevOps 企业版,同时请确保您的包年包月订阅未过期。更多信息,请参见管理组织。
  • 当前账号已切换到目标组织。更多信息,请参见切换到组织。
  • 已在 NineData 中配置 AWS 访问凭证。更多信息,请参见配置云厂商访问凭证。
  • 已录入目标 AWS RDS 数据源,建议优先通过 AWS 入口创建或绑定实例。
  • 已确认目标 RDS 实例所在区域和数据库实例标识符。
  • AWS 访问凭证具备查看 RDS 实例、列出 RDS 日志文件和读取 RDS 日志文件内容的权限。
  • 如果目标为 AWS RDS MySQL,实例已开启 MySQL 慢日志,并将慢日志输出到文件。

权限要求​

AWS RDS MySQL 通过 RDS 实例日志接口采集慢日志,IAM 用户或角色至少需要包含如下权限。

权限 Action用途
rds:DescribeDBInstances查看目标 RDS 实例信息。
rds:DescribeDBLogFiles获取目标实例的日志文件列表。
rds:DownloadDBLogFilePortion按分片读取 RDS 日志文件内容。
提示

AWS 托管策略 AmazonRDSReadOnlyAccess 只覆盖 RDS 查看类权限,不包含 rds:DownloadDBLogFilePortion。如果使用托管只读策略,请额外补充日志文件读取权限;如果企业策略要求完整文件下载权限,也可以同时授予 rds:DownloadCompleteDBLogFile。创建自定义 IAM 策略时,建议将资源范围限制在需要采集慢日志的 RDS 实例。

步骤一:配置 AWS RDS MySQL 慢日志​

如果目标为 AWS RDS MySQL,请先在 RDS 参数组中确认以下参数。

参数建议值说明
slow_query_log1 或 ON开启 MySQL 慢查询日志。
long_query_time按需设置,例如 1查询执行时间超过该阈值时记录为慢查询。
log_outputFILE将慢日志写入 RDS 实例日志文件。
提示

修改参数组后,请确认参数组状态已生效。对于需要重启才能生效的参数,请在业务允许的时间窗口重启 RDS 实例。

步骤二:创建 AWS 外部采集来源​

  1. 登录 NineData 控制台。

  2. 在左侧导航栏,单击数据库 DevOps > 慢查询分析。

  3. 在页面上方页签中,单击外部采集来源。

  4. 单击创建外部采集来源,在右侧抽屉中完成如下配置。

    参数说明
    来源类型选择 AWS。
    云厂商访问凭证选择已配置的 AWS 访问凭证。
    采集来源名称自定义采集来源名称。
    采集来源描述选填,填写采集来源说明。
  5. 单击确定完成创建。

步骤三:绑定来源并开启采集​

  1. 返回慢查询分析页签,找到目标 AWS RDS 数据源,单击慢查询采集列的开关。

  2. 在弹窗中选择外部来源采集,然后完成如下配置。

    参数说明
    外部采集来源选择已创建的 AWS 外部采集来源。
    来源数据源的唯一标识AWS RDS MySQL 通常填写 DBInstanceId、RegionId 和 LogFilePrefix。
    采集频率选择慢日志采集频率。
  3. 填写 AWS RDS MySQL 唯一标识。

    键说明
    DBInstanceIdAWS RDS 的数据库实例标识符,请填写 AWS 控制台中展示的 DB instance identifier。
    RegionIdAWS 区域代码,例如 us-east-1 或 ap-southeast-1。该值必须与实例所在区域一致。
    LogFilePrefix慢日志文件前缀。AWS RDS MySQL 默认慢日志前缀通常为 slowquery/mysql-slowquery.log。归档慢日志文件会在此前缀后追加日期和序号,通常只需填写基础前缀。
  4. 单击确定开启采集。

步骤四:确认采集结果​

等待至少一个采集周期后,进入目标数据源的慢查询详情页面,调整时间范围并查看慢日志列表、Top SQL 和趋势图,确认是否已有慢日志记录写入 NineData。

下图展示 AWS RDS MySQL 慢日志成功采集到 NineData 后的详情页。示例中,慢 SQL 总数为 6,SQL 模板归并为 SELECT SLEEP(?) AS slept;,可用于确认慢日志记录已写入 NineData。

AWS RDS MySQL 慢日志采集结果

提示

慢查询详情页面最多展示 3 天以内的慢查询记录。如果目标实例没有新增慢日志,查询结果会为空。

增量采集说明​

AWS RDS MySQL 的增量采集会记录已处理的日志文件和文件位置。首次采集会根据配置的前缀读取可用慢日志;后续采集会从上一次成功位置继续读取。若本轮没有新增慢日志,采集结果为空且不会推进到错误位置;若采集中断或失败,重试时会从上一次成功位置继续。

常见问题​

现象排查建议
云访问凭证不存在先在 NineData 中创建 AWS 访问凭证。
缺少区域参数补齐 RegionId,并确认区域与目标 RDS 实例一致。
缺少实例标识符补齐 DBInstanceId,并确认该值与 AWS 控制台中的 DB instance identifier 一致。
AWS RDS MySQL 提示慢日志文件不存在确认实例已开启 slow_query_log,log_output 为 FILE,并检查 LogFilePrefix 是否为实际的 RDS 慢日志文件前缀。
AWS RDS MySQL 采集结果为空确认实例已开启慢日志,所选时间范围内产生了慢查询,并检查 LogFilePrefix 是否与 RDS 慢日志文件前缀一致。
AWS RDS MySQL 日志文件读取失败检查 AWS 访问凭证是否具备读取 RDS 日志文件的权限,并确认 RegionId 与 DBInstanceId 是否匹配。
数据源连接或云厂商客户端连接失败优先检查数据源是否通过 AWS 入口创建;若不是,确认连接方式、区域和实例标识是否正确。如果 RDS Endpoint 解析失败,请确认实例处于可用状态、Endpoint 未变化,并在 NineData 中重新同步或编辑数据源连接信息。