RDS for PostgreSQL 数据库日志文件 - Amazon Relational Database Service
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

RDS for PostgreSQL 数据库日志文件

RDS for PostgreSQL 将数据库活动记录到原定设置 PostgreSQL 日志文件中。对于本地 PostgreSQL 数据库实例,这些消息本地存储在 log/postgresql.log 中。对于 RDS for PostgreSQL 数据库实例,日志文件可用于 Amazon RDS 实例上。此外,您必须使用 Amazon RDS 控制台查看或下载其内容。原定设置日志记录级别可捕获登录失败、严重服务器错误、死锁和查询失败。

有关如何查看、下载和监视基于文件的数据库日志的更多信息,请参阅 监控 Amazon RDS 日志文件。要了解有关 PostgreSQL 日志的更多信息,请参阅 Working with Amazon RDS and Aurora PostgreSQL logs: Part 1Working with Amazon RDS and Aurora PostgreSQL logs: Part 2

除了本主题中讨论的标准 PostgreSQL 日志外,RDS for PostgreSQL 还支持 PostgreSQL Audit 扩展(pgAudit)。大多数受监管行业和政府机构需要保留对数据所做更改的审计日志或审计跟踪,以符合法律要求。有关安装和使用 pgAudit 的更多信息,请参阅 使用 pgAudit 记录数据库活动

将 PostgreSQL 日志发布到 Amazon CloudWatch Logs

要在高持久性存储中存储 PostgreSQL 日志记录,您可以使用 Amazon CloudWatch Logs。利用 CloudWatch Logs,您还可以对日志数据进行实时分析,并使用 CloudWatch 查看指标和创建警报。例如,如果您将 log_statement 设置为 ddl,则可以将告警设置为只要执行 DDL 语句就发出提示。在创建 RDS for PostgreSQL 数据库实例的过程中,您可以选择让 PostgreSQL 日志上载到 CloudWatch Logs。如果您当时选择不上载日志,可以稍后修改您的实例,以便从那时起开始上载日志。换句话说,不会上载现有日志。只有在修改后的 RDS for PostgreSQL 数据库实例上创建了新日志时,才上载这些新日志。

所有目前可用的 RDS for PostgreSQL 版本都支持将日志文件发布到 CloudWatch Logs。有关更多信息,请参阅《Amazon RDS for PostgreSQL 版本注释》中的 Amazon RDS for PostgreSQL 更新

要使用 CloudWatch Logs,请为 PostgreSQL 数据库实例配置 RDS 以将日志数据发布到日志组。

您可以将以下日志类型发布到 CloudWatch Logs for RDS for PostgreSQL:

  • Postgresql 日志

  • 升级日志

在完成配置后,Amazon RDS 将日志事件发布到 CloudWatch 日志组内的日志流。例如,PostgreSQL 日志数据存储在日志组 /aws/rds/instance/my_instance/postgresql 中。要查看您的日志,请在 https://console.aws.amazon.com/cloudwatch/ 处打开 CloudWatch 控制台。

使用控制台将 PostgreSQL 日志发布到 CloudWatch Logs
  1. 通过以下网址打开 Amazon RDS 控制台:https://console.aws.amazon.com/rds/

  2. 在导航窗格中,选择 Databases (数据库)

  3. 选择要修改的数据库实例,然后选择 Modify (修改)

  4. Log exports (日志导出) 部分中,选择要开始发布到 CloudWatch Logs 的日志。

    Log exports (日志导出) 部分仅适用于支持发布到 CloudWatch Logs 的 PostgreSQL 版本。

  5. 选择继续,然后选择摘要页面上的修改数据库实例

您可以使用 Amazon CLI 来发布 PostgreSQL 日志。您可以调用带以下参数的 modify-db-instance 命令。

  • --db-instance-identifier

  • --cloudwatch-logs-export-configuration

注意

--cloudwatch-logs-export-configuration 选项进行的更改始终立即应用于数据库实例。因此,--apply-immediately--no-apply-immediately 选项没有影响。

您还可以通过调用以下 CLI 命令来发布 PostgreSQL 日志:

通过以下选项运行上述 CLI 命令之一:

  • --db-instance-identifier

  • --enable-cloudwatch-logs-exports

  • --db-instance-class

  • --engine

根据您运行的 CLI 命令,可能需要其他选项。

例 修改实例以将日志发布到 CloudWatch Logs

以下示例修改现有的 PostgreSQL 数据库实例以将日志文件发布到 CloudWatch Logs。--cloudwatch-logs-export-configuration 值是 JSON 对象。此对象的键是 EnableLogTypes,其值是具有 postgresqlupgrade 的任意组合的字符串的数组。

对于 Linux、macOS 或 Unix:

aws rds modify-db-instance \ --db-instance-identifier mydbinstance \ --cloudwatch-logs-export-configuration '{"EnableLogTypes":["postgresql", "upgrade"]}'

对于 Windows:

aws rds modify-db-instance ^ --db-instance-identifier mydbinstance ^ --cloudwatch-logs-export-configuration '{"EnableLogTypes":["postgresql","upgrade"]}'
例 创建实例以将日志发布到 CloudWatch Logs

以下示例将创建一个 PostgreSQL 数据库实例并将日志文件发布到 CloudWatch Logs。--enable-cloudwatch-logs-exports 值是 JSON 字符串数组。这些字符串可以是 postgresqlupgrade 的任意组合。

对于 Linux、macOS 或 Unix:

aws rds create-db-instance \ --db-instance-identifier mydbinstance \ --enable-cloudwatch-logs-exports '["postgresql","upgrade"]' \ --db-instance-class db.m4.large \ --engine postgres

对于 Windows:

aws rds create-db-instance ^ --db-instance-identifier mydbinstance ^ --enable-cloudwatch-logs-exports '["postgresql","upgrade"]' ^ --db-instance-class db.m4.large ^ --engine postgres

您可以使用 RDS API 来发布 PostgreSQL 日志。您可以使用以下参数调用 ModifyDBInstance 操作:

  • DBInstanceIdentifier

  • CloudwatchLogsExportConfiguration

注意

CloudwatchLogsExportConfiguration 参数进行的更改始终立即应用于数据库实例。因此,ApplyImmediately 参数没有影响。

您还可以通过调用以下 RDS API 操作来发布 PostgreSQL 日志:

使用以下参数运行这些 RDS API 操作之一:

  • DBInstanceIdentifier

  • EnableCloudwatchLogsExports

  • Engine

  • DBInstanceClass

根据您运行的操作,可能需要其他参数。