

# 将数据库日志发布到 Amazon CloudWatch Logs
<a name="USER_LogAccess.Procedural.UploadtoCloudWatch"></a>

在本地数据库中，数据库日志驻留在文件系统上。Amazon RDS 不向主机提供对数据库实例的文件系统上的数据库日志的访问权限。出于此原因，Amazon RDS 可让您将数据库日志导出到 [Amazon CloudWatch Logs](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/WhatIsCloudWatchLogs.html)。利用 CloudWatch Logs，您可以对日志数据执行实时分析。您还可以将数据存储在高持久性存储中，并使用 CloudWatch Logs 代理管理数据。

**Topics**
+ [RDS 与 CloudWatch Logs 集成概述](#rds-integration-cw-logs)
+ [决定将哪些日志发布到 CloudWatch Logs](#engine-specific-logs)
+ [指定要发布到 CloudWatch Logs 的日志](#integrating_cloudwatchlogs.configure)
+ [在 CloudWatch Logs 中搜索和筛选您的日志](#accessing-logs-in-cloudwatch)

## RDS 与 CloudWatch Logs 集成概述
<a name="rds-integration-cw-logs"></a>

在 CloudWatch Logs 中，*日志流* 是共享同一个源的一系列日志事件。CloudWatch Logs 中每个独立的日志源构成一个独立的日志流。*日志组*是一组具有相同保留期、监控和访问控制设置的日志流。

Amazon RDS 将您的数据库实例日志记录持续流式传输到日志组。例如，对于您发布的每种类型的日志，您具有日志组 `/aws/rds/instance/instance_name/log_type`。此日志组与生成日志的数据库实例位于同一 AWS 区域中。

AWS 无限期地保留已发布到 CloudWatch Logs 的日志数据，除非您指定了保留期。有关更多信息，请参阅[更改 CloudWatch Logs 中的日志数据保留](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/Working-with-log-groups-and-streams.html#SettingLogRetention)。

## 决定将哪些日志发布到 CloudWatch Logs
<a name="engine-specific-logs"></a>

每个 RDS 数据库引擎都支持自己的一组日志。要了解数据库引擎的选项，请查看以下主题：
+ [将 Db2 日志发布到 Amazon CloudWatch Logs](USER_LogAccess.Concepts.Db2.md#USER_LogAccess.Db2.PublishtoCloudWatchLogs)
+ [将 MariaDB 日志发布到 Amazon CloudWatch Logs](USER_LogAccess.MariaDB.PublishtoCloudWatchLogs.md)
+ [将 MySQL 日志发布到 Amazon CloudWatch Logs](USER_LogAccess.MySQLDB.PublishtoCloudWatchLogs.md)
+ [将 Oracle 日志发布到 Amazon CloudWatch Logs](USER_LogAccess.Concepts.Oracle.md#USER_LogAccess.Oracle.PublishtoCloudWatchLogs)
+ [将 PostgreSQL 日志发布到 Amazon CloudWatch Logs](USER_LogAccess.Concepts.PostgreSQL.md#USER_LogAccess.Concepts.PostgreSQL.PublishtoCloudWatchLogs)
+ [将 SQL Server 日志发布到 Amazon CloudWatch Logs](USER_LogAccess.Concepts.SQLServer.md#USER_LogAccess.SQLServer.PublishtoCloudWatchLogs)

## 指定要发布到 CloudWatch Logs 的日志
<a name="integrating_cloudwatchlogs.configure"></a>

您可以在控制台中指定要发布哪些日志。确保您在 AWS Identity and Access Management（IAM）中具有服务相关角色。有关服务相关角色的更多信息，请参阅[将服务相关角色用于 Amazon RDS](UsingWithRDS.IAM.ServiceLinkedRoles.md)。

**指定要发布的日志**

1. 通过以下网址打开 Amazon RDS 控制台：[https://console.aws.amazon.com/rds/](https://console.aws.amazon.com/rds/)。

1. 在导航窗格中，选择 **Databases**（数据库）。

1. 请执行以下任一操作：
   + 选择**创建数据库**。
   + 从列表中选择数据库，然后选择 **Modify**（修改）。

1. 在 **Logs exports**（日志导出）中，选择要发布哪些日志。

   以下示例指定 RDS for MySQL 数据库实例的审计日志、错误日志、常规日志，以及慢速查询日志。  
![\[选择要发布到 CloudWatch Logs 的日志\]](http://docs.aws.amazon.com/zh_cn/AmazonRDS/latest/UserGuide/images/AddCWLogs.png)

## 在 CloudWatch Logs 中搜索和筛选您的日志
<a name="accessing-logs-in-cloudwatch"></a>

您可以使用 CloudWatch Logs 控制台搜索满足指定条件的日志条目。您可以通过 RDS 控制台访问日志，这会引导您进入 CloudWatch Logs 控制台，也可以直接从 CloudWatch Logs 控制台访问日志。

**使用 RDS 控制台搜索 RDS 日志**

1. 通过以下网址打开 Amazon RDS 控制台：[https://console.aws.amazon.com/rds/](https://console.aws.amazon.com/rds/)。

1. 在导航窗格中，选择 **Databases**（数据库）。

1. 选择数据库实例。

1. 选择**配置**。

1. 在 **Published logs**（已发布日志）下，选择要查看的数据库日志。

**使用 CloudWatch Logs 控制台搜索 RDS 日志**

1. 通过 [https://console.aws.amazon.com/cloudwatch/](https://console.aws.amazon.com/cloudwatch/) 打开 CloudWatch 控制台。

1. 在导航窗格中，选择 **Log groups（日志组）**。

1. 在筛选框中，输入 **/aws/rds**。

1. 对于 **Log Groups**，选择包含要搜索的日志流的日志组的名称。

1. 对于 **Log Streams**，选择要搜索的日志流的名称。

1. 在 **Log events（日志事件）**下，输入要使用的筛选条件语法。

有关更多信息，请参阅《Amazon CloudWatch Logs 用户指南》中的*搜索和筛选日志数据*。有关介绍如何监控 RDS 日志的博客教程，请参阅[使用 Amazon CloudWatch Logs、AWS Lambda 和 Amazon SNS 为 Amazon RDS 构建主动式数据库监控](https://aws.amazon.com/blogs/database/build-proactive-database-monitoring-for-amazon-rds-with-amazon-cloudwatch-logs-aws-lambda-and-amazon-sns/)。