跳转至

Amazon RDS/Aurora 日志

您可以将数据库实例日志发布到 Amazon CloudWatch Logs。 然后,您可以对日志数据进行实时分析,将数据存储在高度耐用的存储中,并使用 CloudWatch Logs 代理管理数据。

前提条件

确保您的数据库日志已启用。 某些数据库日志默认未启用,您需要更新数据库参数以启用日志。

请参阅如何为 Amazon RDS MySQL 数据库实例启用和监控日志? 了解如何将日志输出到 CloudWatch 日志。

下表列出了 RDS/Aurora MySQL 参数的要求。

参数 要求
Audit Log 数据库实例必须使用带有 MARIADB_AUDIT_PLUGIN 选项的自定义选项组。
General log 数据库实例必须使用参数设置为 general_log = 1 的自定义参数组来启用通用日志。
Slow query log 数据库实例必须使用参数设置为 slow_query_log = 1 的自定义参数组来启用慢查询日志。
Log output 数据库实例必须使用参数设置为 log_output = FILE 的自定义参数组将日志写入文件系统并将它们发布到 CloudWatch Logs。

创建日志摄取

您可以使用日志通 控制台或通过部署独立的 CloudFormation 堆栈来将日志摄取到 Amazon OpenSearch Service 中。

重要

  • RDS 和 CloudWatch 必须与日志通位于同一区域。
  • 默认情况下,该解决方案将每天轮换索引。您可以在额外设置中进行调整。

使用日志通控制台

  1. 登录日志通控制台。
  2. 在导航窗格中的 日志分析管道,选择 AWS 服务日志
  3. 选择创建日志摄取按钮。
  4. AWS 服务 部分,选择 Amazon RDS
  5. 选择下一步
  6. 指定设置,为 RDS 日志启用选择 自动手动。自动模式将自动检测您的 RDS 日志配置,并从 CloudWatch 摄取日志。
    • 对于自动模式,从下拉列表中选择 RDS 集群。
    • 对于手动模式,输入数据库标识符,选择数据库类型并在日志类型和位置中输入 CloudWatch 日志位置。
    • (可选步骤) 如果需要跨账户摄取日志,需要先在 账户 的下拉列表中选择一个链接的 AWS 账户
  7. 选择下一步
  8. 指定 OpenSearch 域 部分,为 Amazon OpenSearch 域 选择一个导入的域。
  9. 如果您要摄取关联的模板化 Amazon OpenSearch Service 仪表板,请为 示例仪表板 选择
  10. 如果需要,您可以更改目标 Amazon OpenSearch Service 索引的 索引前缀。默认前缀是数据库标识符
  11. 日志生命周期 部分,输入管理 Amazon OpenSearch Service 索引生命周期的天数。日志通 将为此管道自动创建关联的 索引状态管理 (ISM) 策略。
  12. 选择下一步
  13. 如果需要,添加标签。
  14. 选择创建

使用 CloudFormation 堆栈

此自动化 AWS CloudFormation 模板在 AWS 云中部署 日志通- RDS Log Ingestion 解决方案

在 AWS 控制台中启动 下载模板
AWS 海外区域 启动堆栈 模板
AWS 中国区域 启动堆栈 模板
  1. 登录 AWS 管理控制台并选择按钮以启动 AWS CloudFormation 模板。 您还可以下载模板开始部署。

  2. 要在不同的 AWS 区域中启动日志通,请使用控制台导航栏中的区域选择器。

  3. 创建堆栈 页面上,验证正确的模板 URL 显示在 Amazon S3 URL 文本框中,然后选择 下一步

  4. 指定堆栈详细信息 页面上,为您的解决方案堆栈分配一个名称。

  5. 参数 下,查看模板的参数并根据需要进行修改。 此解决方案使用以下默认值。

    参数 默认值 描述
    Log Bucket Name <需要输入> 用于导出 CloudWatch Logs 的日志桶。
    Log Bucket Prefix <需要输入> 存储日志的 S3 存储桶路径前缀。
    Log Source Account ID <可选输入> CloudWatch 日志组所在账户 ID. 对于跨账户日志摄取是必填 (需要先 链接一个账户). 默认情况下, 会使用您在 步骤 1 中登录的账户 ID。
    Log Source Region <可选输入> CloudWatch 日志组所在的区域. 默认情况下, 会使用您在 步骤 2 中指定的区域。
    Log Source Account Assume Role <可选输入> 跨账户日志摄取所需要使用的 IAM Role. 对于跨账户日志摄取是必填 (需要先 链接一个账户)。
    Log Group Names <需要输入> 日志的 CloudWatch 日志组的名称。
    Engine Type OpenSearch OpenSearch 的引擎类型。选择 OpenSearch 或 Elasticsearch。
    OpenSearch Domain Name <需要输入> Amazon OpenSearch 集群的域名。
    OpenSearch Endpoint <需要输入> OpenSearch 端点 URL。例如,vpc-your_opensearch_domain_name-xcvgw6uu2o6zafsiefxubwuohe.us-east-1.es.amazonaws.com
    Index Prefix <需要输入> 日志的 OpenSearch 索引的公共前缀。索引名称将为 <Index Prefix>-<log-type>-<YYYY-MM-DD>
    Create Sample Dashboard Yes 是否创建示例 OpenSearch 仪表板。
    VPC ID <需要输入> 选择可以访问 OpenSearch 域的 VPC。日志处理 Lambda 将驻留在选定的 VPC 中。
    Subnet IDs <需要输入> 选择至少两个可以访问 OpenSearch 域的子网。日志处理 Lambda 将驻留在子网中。确保子网可以访问 Amazon S3 服务。
    Security Group ID <需要输入> 选择将与日志处理 Lambda 关联的安全组。确保安全组有权访问 OpenSearch 域。
    S3 Backup Bucket <需要输入> 用于存储失败提取日志的 S3 备份存储桶名称。
    KMS-CMK ARN <可选输入> 用于加密 SQS 的 KMS-CMK ARN。留空以创建新的 KMS CMK。
    Number Of Shards 5 将索引均匀分布在所有数据节点上的分片数。将每个分片的大小保持在 10-50 GiB 之间。
    Number of Replicas 1 OpenSearch 索引的副本数。每个副本都是索引的完整副本。
    Age to Warm Storage <可选输入> 将索引移至温存储所需的时间(例如 7d)。索引时间是从创建到现在之间的时间。支持的单位是 d(天)和 h(小时)。仅当OpenSearch 中启用了温存储时才生效。
    Age to Cold Storage <可选输入> 将索引移入冷存储所需的时间(例如 30d)。索引时间是从创建到现在之间的时间。支持的单位是 d(天)和 h(小时)。仅当 OpenSearch 中启用了冷存储时才生效。
    Age to Retain <可选输入> 保留索引的时间(例如 180d)。索引时间是从创建到现在之间的时间。支持的单位是 d(天)和 h(小时)。如果值为空,则不会删除该索引。
    Rollover Index Size <可选输入> 索引滚动所需的分片大小(例如 30GB)。
    Index Suffix yyyy-MM-dd 索引后缀格式(例如:yyyy-MM-dd、yyyy-MM-dd-HH)。索引名称将为 <Index Prefix>-<Log Type>-<Index Suffix>-000001
    Compression type best_compression 用于压缩存储数据的压缩类型。 可用值为 best_compression 和 default。
    Refresh Interval 1s 索引多久刷新,即刷新索引最近的更改数据并使它们可用于搜索。 可以设置为 -1 以禁用刷新。 默认为 1秒。
  6. 选择下一步

  7. 配置堆栈选项 页面上,选择 下一步

  8. 审核 页面上,查看并确认设置。 选中确认模板创建 AWS Identity and Access Management (IAM) 资源的复选框。

  9. 选择创建堆栈 部署堆栈。

您可以在 AWS CloudFormation 控制台的 状态 列中查看堆栈的状态。 正常情况下,您大约 15 分钟后会看到 CREATE_COMPLETE 状态。**

查看仪表板

该仪表板包括以下可视化图表。

Visualization Name Source Field Description
Controller
  • db-identifier
  • sq-table-name
此可视化允许用户根据“db-identifier”和“sq-table-name”字段进行数据筛选。
Total Log Events Overview
  • db-identifier
  • log event
此可视化呈现了指定数据库(“db-identifier”)的总日志事件概览。它有助于监控各种日志事件的发生频率。
Slow Query History
  • log event
此可视化显示了慢查询日志事件的历史数据。它可以帮助跟踪慢查询的发生次数并识别潜在的性能问题。
Average Slow Query Time History
  • Average sq-duration
此可视化显示了慢查询的平均持续时间(“sq-duration”)的历史趋势。它有助于了解数据库随时间的性能情况,并识别与慢查询持续时间相关的趋势。
Total Slow Queries
  • log event
此可视化提供了日志事件中慢查询总数。它可以立即查看在特定时间段内发生了多少个慢查询,这有助于评估数据库的性能和潜在的瓶颈。
Average Slow Query Duration
  • Average sq-duration
此可视化显示了慢查询的平均持续时间(“sq-duration”)随时间的变化。它对于了解数据库中慢查询的典型性能非常有价值。
Top Slow Query IP
  • sq-ip
  • sq-duration
此可视化突出显示了与最慢查询相关的 IP 地址(“sq-ip”)及其相应的持续时间(“sq-duration”)。它有助于识别慢查询的来源并确定优化的潜在领域。
Slow Query Scatter Plot
  • sq-duration
  • sq-ip
  • sq-query
此散点图可视化表示慢查询持续时间(“sq-duration”)、源 IP 地址(“sq-ip”)以及实际查询内容(“sq-query”)之间的关系。它有助于理解查询性能模式,并识别特定查询及其来源的潜在问题。
Slow Query Pie
  • sq-query
此饼图可视化显示了基于查询内容(“sq-query”)的慢查询分布。它提供了引起性能问题的查询类型的概览,使您可以专注于优化特定的查询模式。
Slow Query Table Name Pie
  • sq-table-name
此饼图可视化显示了基于访问的表名(“sq-table-name”)的慢查询分布。它有助于识别哪些表受到慢查询的影响,从而可以有针对性地优化特定表。
Top Slow Query
  • sq-query
此可视化呈现了基于查询内容(“sq-query”)的最慢单个查询。它有助于精确定位对性能产生