

本文為英文版的機器翻譯版本，如內容有任何歧義或不一致之處，概以英文版為準。

# RDS for PostgreSQL 資料庫日誌檔案
<a name="USER_LogAccess.Concepts.PostgreSQL"></a>

您可以監控以下 日誌檔案類型：
+ PostgreSQL 日誌
+ 升級日誌
+ IAM 資料庫身分驗證錯誤日誌
**注意**  
若要啟用 IAM 資料庫身分驗證錯誤日誌，您必須先為 RDS for PostgreSQL 資料庫執行個體啟用 IAM 資料庫身分驗證。如需啟用 IAM 資料庫身分驗證的詳細資訊，請參閱 [啟用和停用 IAM 資料庫身分驗證](UsingWithRDS.IAMDBAuth.Enabling.md)。

RDS for PostgreSQL 會將資料庫活動記錄到預設的 PostgreSQL 日誌檔。對於內部部署 PostgreSQL 資料庫執行個體，這些訊息會在本機存放於 `log/postgresql.log` 中。對於 RDS for PostgreSQL 資料庫執行個體)，日誌檔可在 Amazon RDS 執行個體上取得。這些日誌也可以透過 存取 AWS 管理主控台，您可以在其中檢視或下載。預設的記錄層級會擷取登入失敗、嚴重的伺服器錯誤、死鎖和查詢失敗。

如需有關如何檢視、下載和監看檔案型資料庫日誌的詳細資訊，請參閱 [監控 Amazon RDS 日誌檔案](USER_LogAccess.md)。若要進一步了解 PostgreSQL 日誌，請參閱 [Working with Amazon RDS and Aurora PostgreSQL logs: Part 1](https://aws.amazon.com/blogs/database/working-with-rds-and-aurora-postgresql-logs-part-1/) (使用 Amazon RDS 和 Aurora PostgreSQL 日誌：第 1 部分) 以及 [Working with Amazon RDS and Aurora PostgreSQL logs: Part 2](https://aws.amazon.com/blogs/database/working-with-rds-and-aurora-postgresql-logs-part-2/) (使用 Amazon RDS 和 Aurora PostgreSQL 日誌：第 2 部分)。

除了本主題中討論的標準 PostgreSQL 日誌之外，RDS for PostgreSQL 也支援 PostgreSQL 稽核擴充功能 (`pgAudit`)。大多數受管制的產業和政府機構都需要維護對資料所做變更的稽核日誌或稽核線索，以符合法律要求。如需安裝與使用 pgAudit 的資訊，請參閱 [使用 PgAudit 記錄資料庫活動](Appendix.PostgreSQL.CommonDBATasks.pgaudit.md)。

**Topics**
+ [用於在 RDS for PostgreSQL 中進行記錄的參數](USER_LogAccess.Concepts.PostgreSQL.overview.parameter-groups.md)
+ [開啟 RDS for PostgreSQL 資料庫執行個體的查詢記錄](USER_LogAccess.Concepts.PostgreSQL.Query_Logging.md)
+ [將 PostgreSQL 日誌發佈至 Amazon CloudWatch Logs](#USER_LogAccess.Concepts.PostgreSQL.PublishtoCloudWatchLogs)

## 將 PostgreSQL 日誌發佈至 Amazon CloudWatch Logs
<a name="USER_LogAccess.Concepts.PostgreSQL.PublishtoCloudWatchLogs"></a>

若要將 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 更新](https://docs.aws.amazon.com/AmazonRDS/latest/PostgreSQLReleaseNotes/postgresql-versions.html)。

若要使用 CloudWatch Logs，設定 RDS for PostgreSQL 資料庫執行個體，將日誌資料發佈至日誌群組。

您可以將下列日誌類型發佈到 CloudWatch Logs for RDS for PostgreSQL：
+ PostgreSQL 日誌
+ 升級日誌 
+ IAM 資料庫身分驗證錯誤日誌

完成組態之後，Amazon RDS 會在 CloudWatch 日誌群組內將日誌事件發佈至日誌串流。例如，PostgreSQL 日誌資料存放在日誌群組 `/aws/rds/instance/{{my_instance}}/postgresql` 內。若要檢視您的記錄檔，請開啟位於 [https://console.aws.amazon.com/cloudwatch/](https://console.aws.amazon.com/cloudwatch/) 的 CloudWatch 主控台。

### 主控台
<a name="USER_LogAccess.Concepts.PostgreSQL.PublishtoCloudWatchLogs.CON"></a>

**使用主控台將 PostgreSQL 日誌發佈到 CloudWatch Logs**

1. 前往 [https://console.aws.amazon.com/rds/](https://console.aws.amazon.com/rds/)，開啟 Amazon RDS 主控台。

1. 在導覽窗格中，選擇 **Databases** (資料庫)。

1. 選擇您要修改的資料庫執行個體，然後選擇 **Modify (修改)**。

1. 在 **Log exports (日誌匯出)** 區段中，選擇您要開始發佈至 CloudWatch Logs 的日誌。

   **Log exports (日誌匯出)** 區段僅適用於支援發佈至 CloudWatch Logs 的 PostgreSQL 版本。

1. 選擇 **Continue (繼續)**，然後在摘要頁面上選擇 **Modify DB Instance (修改資料庫執行個體)**。

### AWS CLI
<a name="USER_LogAccess.Concepts.PostgreSQL.PublishtoCloudWatchLogs.CLI"></a>

您可以使用 發佈 PostgreSQL 日誌 AWS CLI。您可以使用下列參數來呼叫 [https://docs.aws.amazon.com/cli/latest/reference/rds/modify-db-instance.html](https://docs.aws.amazon.com/cli/latest/reference/rds/modify-db-instance.html) 命令。
+ `--db-instance-identifier`
+ `--cloudwatch-logs-export-configuration`

**注意**  
`--cloudwatch-logs-export-configuration` 選項的變更一律立即套用到資料庫執行個體。因此，`--apply-immediately` 和 `--no-apply-immediately` 選項沒有效果。

您也可以呼叫下列 CLI 命令來發布 PostgreSQL 日誌：
+ [https://docs.aws.amazon.com/cli/latest/reference/rds/create-db-instance.html](https://docs.aws.amazon.com/cli/latest/reference/rds/create-db-instance.html)
+ [https://docs.aws.amazon.com/cli/latest/reference/rds/restore-db-instance-from-db-snapshot.html](https://docs.aws.amazon.com/cli/latest/reference/rds/restore-db-instance-from-db-snapshot.html)
+ [https://docs.aws.amazon.com/cli/latest/reference/rds/restore-db-instance-to-point-in-time.html](https://docs.aws.amazon.com/cli/latest/reference/rds/restore-db-instance-to-point-in-time.html)

執行上述其中一個 CLI 命令並指定下列選項：
+ `--db-instance-identifier`
+ `--enable-cloudwatch-logs-exports`
+ `--db-instance-class`
+ `--engine`

視您執行的 CLI 命令而定，可能需要其他選項。

**Example 修改執行個體將日誌發佈到 CloudWatch Logs**  
下列範例修改現有的 PostgreSQL 資料庫執行個體，將日誌檔案發佈至 CloudWatch Logs。`--cloudwatch-logs-export-configuration` 值為 JSON 物件。此物件的索引鍵為 `EnableLogTypes`，而其值為包含 `postgresql` 和 `upgrade` 任意組合的字串陣列。  
針對 Linux、macOS 或 Unix：  

```
1. aws rds modify-db-instance \
2.     --db-instance-identifier {{mydbinstance}} \
3.     --cloudwatch-logs-export-configuration '{"EnableLogTypes":["postgresql", "upgrade"]}'
```
在 Windows 中：  

```
1. aws rds modify-db-instance ^
2.     --db-instance-identifier {{mydbinstance}} ^
3.     --cloudwatch-logs-export-configuration '{"EnableLogTypes":["postgresql","upgrade"]}'
```

**Example 建立執行個體將日誌發佈到 CloudWatch Logs**  
下列範例建立 PostgreSQL 資料庫執行個體並將日誌檔案發佈至 CloudWatch Logs。`--enable-cloudwatch-logs-exports` 值為 JSON 字串陣列。字串可以是 `postgresql` 和 `upgrade` 的任意組合。  
針對 Linux、macOS 或 Unix：  

```
1. aws rds create-db-instance \
2.     --db-instance-identifier {{mydbinstance}} \
3.     --enable-cloudwatch-logs-exports '["postgresql","upgrade"]' \
4.     --db-instance-class {{db.m4.large}} \
5.     --engine {{postgres}}
```
在 Windows 中：  

```
1. aws rds create-db-instance ^
2.     --db-instance-identifier {{mydbinstance}} ^
3.     --enable-cloudwatch-logs-exports '["postgresql","upgrade"]' ^
4.     --db-instance-class {{db.m4.large}} ^
5.     --engine {{postgres}}
```

### RDS API
<a name="USER_LogAccess.Concepts.PostgreSQL.PublishtoCloudWatchLogs.API"></a>

您可以使用 RDS API 來發佈 PostgreSQL 日誌。您可以使用下列參數來呼叫 [https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_ModifyDBInstance.html](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_ModifyDBInstance.html) 動作：
+ `DBInstanceIdentifier`
+ `CloudwatchLogsExportConfiguration`

**注意**  
`CloudwatchLogsExportConfiguration` 參數的變更一律立即套用到資料庫執行個體。因此，`ApplyImmediately` 參數沒有效果。

您也可以呼叫下列 RDS API 操作來發佈 PostgreSQL 日誌：
+ [https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_CreateDBInstance.html](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_CreateDBInstance.html)
+ [https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_RestoreDBInstanceFromDBSnapshot.html](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_RestoreDBInstanceFromDBSnapshot.html)
+ [https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_RestoreDBInstanceToPointInTime.html](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_RestoreDBInstanceToPointInTime.html)

以下列參數來執行其中一個 RDS API 操作：
+ `DBInstanceIdentifier`
+ `EnableCloudwatchLogsExports`
+ `Engine`
+ `DBInstanceClass`

視您執行的操作而定，可能需要其他參數。

 