配置 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_log | 1 或 ON | 开启 MySQL 慢查询日志。 |
long_query_time | 按需设置,例如 1 | 查询执行时间超过该阈值时记录为慢查询。 |
log_output | FILE | 将慢日志写入 RDS 实例日志文件。 |
修改参数组后,请确认参数组状态已生效。对于需要重启才能生效的参数,请在业务允许的时间窗口重启 RDS 实例。
步骤二:创建 AWS 外部采集来源
登录 NineData 控制台。
在左侧导航栏,单击数据库 DevOps > 慢查询分析。
在页面上方页签中,单击外部采集来源。
单击创建外部采集来源,在右侧抽屉中完成如下配置。
参数 说明 来源类型 选择 AWS。 云厂商访问凭证 选择已配置的 AWS 访问凭证。 采集来源名称 自定义采集来源名称。 采集来源描述 选填,填写采集来源说明。 单击确定完成创建。
步骤三:绑定来源并开启采集
返回慢查询分析页签,找到目标 AWS RDS 数据源,单击慢查询采集列的开关。
在弹窗中选择外部来源采集,然后完成如下配置。
参数 说明 外部采集来源 选择已创建的 AWS 外部采集来源。 来源数据源的唯一标识 AWS RDS MySQL 通常填写 DBInstanceId、RegionId和LogFilePrefix。采集频率 选择慢日志采集频率。 填写 AWS RDS MySQL 唯一标识。
键 说明 DBInstanceIdAWS RDS 的数据库实例标识符,请填写 AWS 控制台中展示的 DB instance identifier。 RegionIdAWS 区域代码,例如 us-east-1或ap-southeast-1。该值必须与实例所在区域一致。LogFilePrefix慢日志文件前缀。AWS RDS MySQL 默认慢日志前缀通常为 slowquery/mysql-slowquery.log。归档慢日志文件会在此前缀后追加日期和序号,通常只需填写基础前缀。单击确定开启采集。
步骤四:确认采集结果
等待至少一个采集周期后,进入目标数据源的慢查询详情页面,调整时间范围并查看慢日志列表、Top SQL 和趋势图,确认是否已有慢日志记录写入 NineData。
下图展示 AWS RDS MySQL 慢日志成功采集到 NineData 后的详情页。示例中,慢 SQL 总数为 6,SQL 模板归并为 SELECT SLEEP(?) AS slept;,可用于确认慢日志记录已写入 NineData。

慢查询详情页面最多展示 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 中重新同步或编辑数据源连接信息。 |