

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

# 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)

# 用於在 RDS for PostgreSQL 中進行記錄的參數
<a name="USER_LogAccess.Concepts.PostgreSQL.overview.parameter-groups"></a>

您可以修改各種參數，為 RDS for PostgreSQL 資料庫執行個體自訂記錄行為。在下表中，您可以找到影響日誌檔存放時間、何時輪換日誌，以及是否以 CSV (逗號分隔值) 格式輸出日誌。您也可以找到已傳送至 STDERR 的文字輸出，以及其他設定。若要變更可修改之參數的設定，請將自訂資料庫參數群組用於 。RDS for PostgreSQL 執行個體。如需詳細資訊，請參閱 [Amazon RDS 資料庫執行個體的資料庫參數群組](USER_WorkingWithDBInstanceParamGroups.md)。


| 參數 | 預設 | Description | 
| --- | --- | --- | 
| log\$1destination | stderr | 設定日誌的輸出格式。預設值是 `stderr`，但您也可以將 `csvlog` 新增至設定來指定逗號分隔值 (CSV)。如需詳細資訊，請參閱[設定日誌目標 (`stderr`、`csvlog`)](#USER_LogAccess.Concepts.PostgreSQL.Log_Format)。 | 
| log\$1filename |  postgresql.log.%Y-%m-%d-%H  | 指定日誌檔名稱的模式。除了預設值之外，此參數還支援檔案名稱模式的 `postgresql.log.%Y-%m-%d` 和 `postgresql.log.%Y-%m-%d-%H%M`。 | 
| log\$1line\$1prefix | %t:%r:%u@%d:[%p]: | 定義寫入至 `stderr` 的每個日誌行的字首，以記錄時間 (%t)、遠端主機 (%r)、使用者 (%u)、資料庫 (%d) 和程序 ID (%p)。 | 
| log\$1rotation\$1age | 60 | 日誌檔會多少分鐘後自動轉換。您可以在 1 到 1440 分鐘的範圍內變更此值。如需詳細資訊，請參閱[設定日誌檔案輪換](#USER_LogAccess.Concepts.PostgreSQL.log_rotation)。 | 
| log\$1rotation\$1size | – | 日誌檔自動轉換的大小 (kB)。根據預設，不會使用此參數，因為日誌會根據 `log_rotation_age` 參數進行輪換。如需詳細資訊，請參閱 [設定日誌檔案輪換](#USER_LogAccess.Concepts.PostgreSQL.log_rotation)。 | 
| rds.log\$1retention\$1period | 4320 | 早於指定分鐘數的 PostgreSQL 日誌將遭到刪除。預設值 4320 分鐘將在 3 天後刪除日誌檔案。如需詳細資訊，請參閱[設定日誌保留期間](#USER_LogAccess.Concepts.PostgreSQL.log_retention_period)。 | 

如要識別應用程式問題，您可在日誌中尋找查詢失敗、登入失敗、鎖死和致命的伺服器錯誤。例如，假設您已將舊版應用程式從 Oracle 轉換為 Amazon RDS PostgreSQL，但並非所有查詢都已正確轉換。這些格式不正確的查詢會產生您可在日誌中尋找的錯誤訊息，以協助識別問題。如需記錄查詢的詳細資訊，請參閱 [開啟 RDS for PostgreSQL 資料庫執行個體的查詢記錄](USER_LogAccess.Concepts.PostgreSQL.Query_Logging.md)。

在下列主題中，您可以找到如何設定各種參數的相關資訊，這些參數控制 PostgreSQL 日誌的基本詳細資訊。

**Topics**
+ [設定日誌保留期間](#USER_LogAccess.Concepts.PostgreSQL.log_retention_period)
+ [設定日誌檔案輪換](#USER_LogAccess.Concepts.PostgreSQL.log_rotation)
+ [設定日誌目標 (`stderr`、`csvlog`)](#USER_LogAccess.Concepts.PostgreSQL.Log_Format)
+ [了解 log\$1line\$1prefix 參數](#USER_LogAccess.Concepts.PostgreSQL.Log_Format.log-line-prefix)

## 設定日誌保留期間
<a name="USER_LogAccess.Concepts.PostgreSQL.log_retention_period"></a>

`rds.log_retention_period` 參數指定 RDS for PostgreSQL 資料庫執行個體保留其日誌檔的時間長度。預設設定為 3 天 (4,320 分鐘)，但您可以將此值設為 1 天 (1,440 分鐘) 至 7 天 (10,080 分鐘)。請確定您的 RDS for PostgreSQL 資料庫執行個體具有足夠的儲存空間來保留日誌檔一段時間。

我們建議您定期將日誌發佈至 Amazon CloudWatch Logs 中，如此，您便可在日誌從 中移除後的很長時間內檢視並分析系統資料。RDS for PostgreSQL 資料庫執行個體。如需詳細資訊，請參閱 [將 PostgreSQL 日誌發佈至 Amazon CloudWatch Logs](USER_LogAccess.Concepts.PostgreSQL.md#USER_LogAccess.Concepts.PostgreSQL.PublishtoCloudWatchLogs)。

## 設定日誌檔案輪換
<a name="USER_LogAccess.Concepts.PostgreSQL.log_rotation"></a>

依預設，Amazon RDS 每小時都會建立新的日誌檔。時間由 `log_rotation_age` 參數控制。此參數的預設值為 60 (分鐘)，但您可以將其設為從 1 分鐘至 24 小時 (1,440 分鐘) 的任何時間。在輪換時，會建立一個新的不同日誌檔案。該檔案的命名是依據 `log_filename` 參數所指定的模式。

日誌檔案也可依其大小進行旋轉，如 `log_rotation_size` 參數中所指定。此參數指定當日誌達到指定大小 (以 KB 為單位) 時應輪換日誌。若為 RDS for PostgreSQL 資料庫執行個體，`log_rotation_size` 未設定，即並未指定任何值。不過，您可以設定從 0-2097151 KB 的參數。

日誌檔案名稱會以 `log_filename` 參數中指定的檔案名稱模式為基礎。此參數的可用設定如下所示：
+ `postgresql.log.%Y-%m-%d` – 日誌檔名稱的預設格式。在日誌檔的名稱中包含年、月和日期。
+ `postgresql.log.%Y-%m-%d-%H` – 在日誌檔名稱格式中包括小時。

如需詳細資訊，請參閱 PostgreSQL 文件中的 [https://www.postgresql.org/docs/current/runtime-config-logging.html#GUC-LOG-ROTATION-AGE](https://www.postgresql.org/docs/current/runtime-config-logging.html#GUC-LOG-ROTATION-AGE) 和 [https://www.postgresql.org/docs/current/runtime-config-logging.html#GUC-LOG-ROTATION-SIZE](https://www.postgresql.org/docs/current/runtime-config-logging.html#GUC-LOG-ROTATION-SIZE)。

## 設定日誌目標 (`stderr`、`csvlog`)
<a name="USER_LogAccess.Concepts.PostgreSQL.Log_Format"></a>

預設情況下，Amazon RDS PostgreSQL 生成標準錯誤 (stderr) 格式的日誌。此格式為 `log_destination` 參數的預設設定。每則訊息都會使用 `log_line_prefix` 參數中指定的模式作為字首。如需詳細資訊，請參閱[了解 log\$1line\$1prefix 參數](#USER_LogAccess.Concepts.PostgreSQL.Log_Format.log-line-prefix)。

RDS for PostgreSQL 也會以 `csvlog` 格式產生日誌檔。將日誌資料當作逗號分隔值 (CSV) 進行分析時，`csvlog` 很有用。例如，假設您使用 `log_fdw` 延伸模組，將日誌作為外部資料表處理。在 `stderr` 日誌檔案上建立的外部資料表包含一個具日誌事件資料的單一欄。透過將 `csvlog` 新增至 `log_destination` 參數，您可以取得 CSV 格式的日誌檔，其中包含外部資料表的多個資料欄的分界。您現在可以更輕鬆地排序和分析日誌。如要進一步了解如何使用 `log_fdw` 和 `csvlog`，請參閱 [使用 log\$1fdw 擴充功能存取使用 SQL 的資料庫日誌](CHAP_PostgreSQL.Extensions.log_fdw.md)。

如果您為此參數指定 `csvlog`，請注意會同時產生 `stderr` 和 `csvlog` 檔案。請務必監控日誌所使用的儲存體，同時考慮 `rds.log_retention_period` 及影響日誌儲存體和更換的其他設定。使用 `stderr` 和 `csvlog` 會使日誌所使用的儲存體空間增加一倍以上。

如果您將 `csvlog` 新增至 `log_destination`，並且想要單獨還原為 `stderr`，則需要重設參數。若要這麼做，請開啟 Amazon RDS 主控台，然後您的執行個體開啟自訂資料庫參數群組。選擇 `log_destination` 參數、選擇 **Edit parameter** (編輯參數]，然後選擇 **Reset** (重設)。

如需有關設定日誌記錄的詳細資訊，請參閱[使用 Amazon RDS 和 Aurora PostgreSQL 日誌：第 1 部分](https://aws.amazon.com/blogs/database/working-with-rds-and-aurora-postgresql-logs-part-1/)。

## 了解 log\$1line\$1prefix 參數
<a name="USER_LogAccess.Concepts.PostgreSQL.Log_Format.log-line-prefix"></a>

`stderr` 日誌格式會將 `log_line_prefix` 參數指定的詳細資訊作為每個日誌訊息的字首。預設值為：

```
%t:%r:%u@%d:[%p]:t
```

從 Aurora PostgreSQL 第 16 版開始，您也可以選擇：

```
%m:%r:%u@%d:[%p]:%l:%e:%s:%v:%x:%c:%q%a
```

每個傳送至 stderr 的日誌項目都包含根據所選取值的下列資訊：
+ `%t` – 不到毫秒的日誌項目時間
+ `%m` – 毫秒的日誌項目時間
+  `%r` – 遠端主機地址
+  `%u@%d` – 使用者名稱 @ 資料庫名稱
+  `[%p]` – 程序 ID (若可用)
+  `%l` – 每個工作階段的日誌行號 
+  `%e` – SQL 錯誤代碼 
+  `%s` – 程序開始時間戳記 
+  `%v` – 虛擬交易 ID 
+  `%x` – 交易 ID 
+  `%c` – 工作階段 ID 
+  `%q` – 非工作階段結束字元 
+  `%a` – 應用程式名稱 

# 開啟 RDS for PostgreSQL 資料庫執行個體的查詢記錄
<a name="USER_LogAccess.Concepts.PostgreSQL.Query_Logging"></a>

您可以設定下表中列出的一些參數，來收集有關資料庫活動的詳細資訊，包括查詢、等待鎖定的查詢、檢查點，以及許多其他詳細資訊。本主題著重於記錄查詢。


| 參數 | 預設 | Description | 
| --- | --- | --- | 
| log\$1connections | – | 記錄每個成功連線。 | 
| log\$1disconnections | – | 記錄每個工作階段的結束及其持續時間。 | 
| log\$1checkpoints | 1 | 記錄每個檢查點。 | 
| log\$1lock\$1waits | – | 記錄長鎖定等待。根據預設，不會設定此參數。 | 
| log\$1min\$1duration\$1sample | – | (毫秒) 設定執行時間下限，超出此時間就會記錄陳述式樣本。使用 log\$1statement\$1sample\$1rate 參數設定範例大小。 | 
| log\$1min\$1duration\$1statement | – | 至少執行指定時間或更長時間的任何 SQL 陳述式都會被記錄下來。根據預設，不會設定此參數。開啟此參數可以協助您尋找未最佳化的查詢。 | 
| log\$1statement | – | 設定已記錄的陳述式類型。依預設，不會設定此參數，但您可以將其變更為 `all`、`ddl` 或 `mod`，以指定您要記錄的 SQL 陳述式類型。如果您針對這個參數指定了 `none` 以外的任何值，您也應該採取額外的步驟，以防止在日誌檔中暴露密碼。如需詳細資訊，請參閱[降低使用查詢記錄時密碼暴露的風險降低密碼暴露風險](#USER_LogAccess.Concepts.PostgreSQL.Query_Logging.mitigate-risk)。 | 
| log\$1statement\$1sample\$1rate | – | 超過要記錄之 `log_min_duration_sample` 中所指定時間的陳述式百分比，以介於 0.0 與 1.0 之間的浮點值表示。 | 
| log\$1statement\$1stats | – | 將累積效能統計資訊寫入至伺服器日誌。 | 

## 使用記錄來尋找執行緩慢的查詢
<a name="USER_LogAccess.Concepts.PostgreSQL.Query_Logging.using"></a>

您可以記錄 SQL 陳述式和查詢，以協助尋找執行緩慢的查詢。您可以依照本節所述修改 `log_statement` 和 `log_min_duration` 參數中的設定來開啟此功能。在針對您的 RDS for PostgreSQL 資料庫執行個體 開啟查詢記錄之前，您應該注意到日誌檔中可能暴露密碼，以及如何降低風險。如需詳細資訊，請參閱[降低使用查詢記錄時密碼暴露的風險降低密碼暴露風險](#USER_LogAccess.Concepts.PostgreSQL.Query_Logging.mitigate-risk)。

接下來，您可以尋找有關 `log_statement` 和 `log_min_duration` 參數的參考資訊。log\$1statement

此參數指定應該傳送至日誌的 SQL 陳述式類型。預設值為 `none`。如果您將此參數變更為 `all`、`ddl` 或 `mod`，請務必套用建議的動作，以降低在日誌檔中暴露密碼的風險。如需詳細資訊，請參閱[降低使用查詢記錄時密碼暴露的風險降低密碼暴露風險](#USER_LogAccess.Concepts.PostgreSQL.Query_Logging.mitigate-risk)。

**全部**  
記錄所有陳述式。此設定是基於偵錯用途而建議的。

**DDL**  
記錄所有資料定義語言 (DDL) 陳述式，例如 CREATE、ALTER、DROP 等。

**MOD**  
記錄所有 DDL 陳述式和資料操作語言 (DML) 陳述式，例如 INSERT、UPDATE 和 DELETE)，這些陳述式會修改資料。

**無**  
不會記錄任何 SQL 陳述式。建議您使用此設定，以避免在日誌中暴露密碼的風險。log\$1min\$1duration\$1statement

至少執行指定時間或更長時間的任何 SQL 陳述式都會被記錄下來。根據預設，不會設定此參數。開啟此參數可以協助您尋找未最佳化的查詢。

**–1–2147483647**  
記錄陳述式之執行時間的毫秒數。

**設定查詢記錄**

這些步驟假設您的 RDS for PostgreSQL 資料庫執行個體使用自訂資料庫參數群組。

1. 將 `log_statement` 參數設為 `all`。下列範例顯示使用此參數設定寫入至 `postgresql.log` 檔案的資訊。

   ```
   2022-10-05 22:05:52 UTC:52.95.4.1(11335):postgres@labdb:[3639]:LOG: statement: SELECT feedback, s.sentiment,s.confidence
   FROM support,aws_comprehend.detect_sentiment(feedback, 'en') s
   ORDER BY s.confidence DESC;
   2022-10-05 22:05:52 UTC:52.95.4.1(11335):postgres@labdb:[3639]:LOG: QUERY STATISTICS
   2022-10-05 22:05:52 UTC:52.95.4.1(11335):postgres@labdb:[3639]:DETAIL: ! system usage stats:
   ! 0.017355 s user, 0.000000 s system, 0.168593 s elapsed
   ! [0.025146 s user, 0.000000 s system total]
   ! 36644 kB max resident size
   ! 0/8 [0/8] filesystem blocks in/out
   ! 0/733 [0/1364] page faults/reclaims, 0 [0] swaps
   ! 0 [0] signals rcvd, 0/0 [0/0] messages rcvd/sent
   ! 19/0 [27/0] voluntary/involuntary context switches
   2022-10-05 22:05:52 UTC:52.95.4.1(11335):postgres@labdb:[3639]:STATEMENT: SELECT feedback, s.sentiment,s.confidence
   FROM support,aws_comprehend.detect_sentiment(feedback, 'en') s
   ORDER BY s.confidence DESC;
   2022-10-05 22:05:56 UTC:52.95.4.1(11335):postgres@labdb:[3639]:ERROR: syntax error at or near "ORDER" at character 1
   2022-10-05 22:05:56 UTC:52.95.4.1(11335):postgres@labdb:[3639]:STATEMENT: ORDER BY s.confidence DESC;
   ----------------------- END OF LOG ----------------------
   ```

1. 設定 `log_min_duration_statement` 參數。下列範例說明此參數設定為 `postgresql.log` 時寫入至 `1` 檔案的資訊：

   系統會記錄超過 `log_min_duration_statement` 參數中所指定持續時間的查詢。下列顯示一個範例。您可以在 Amazon RDS 主控台中檢視 RDS for PostgreSQL 資料庫執行個體的日誌檔。

   ```
   2022-10-05 19:05:19 UTC:52.95.4.1(6461):postgres@labdb:[6144]:LOG: statement: DROP table comments;
   2022-10-05 19:05:19 UTC:52.95.4.1(6461):postgres@labdb:[6144]:LOG: duration: 167.754 ms
   2022-10-05 19:08:07 UTC::@:[355]:LOG: checkpoint starting: time
   2022-10-05 19:08:08 UTC::@:[355]:LOG: checkpoint complete: wrote 11 buffers (0.0%); 0 WAL file(s) added, 0 removed, 0 recycled; write=1.013 s, sync=0.006 s, total=1.033 s; sync files=8, longest=0.004 s, average=0.001 s; distance=131028 kB, estimate=131028 kB
   ----------------------- END OF LOG ----------------------
   ```

### 降低使用查詢記錄時密碼暴露的風險
<a name="USER_LogAccess.Concepts.PostgreSQL.Query_Logging.mitigate-risk"></a>

建議您保持 `log_statement` 設定為 `none` 以避免密碼暴露。如果您將 `log_statement` 設定為 `all`、`ddl` 或 `mod`，建議您採取下列一或多個步驟。
+ 對於用戶端，請加密敏感資訊。如需的詳細資訊，請參閱 PostgreSQL 文件中的[加密選項](https://www.postgresql.org/docs/current/encryption-options.html)。使用 `CREATE` 和 `ALTER` 陳述式的 `ENCRYPTED` (和 `UNENCRYPTED`) 選項。如需詳細資訊，請參閱 PostgreSQL 文件中的 [CREATE USER](https://www.postgresql.org/docs/current/sql-createuser.html)。
+ 對於您的 RDS for PostgreSQL 資料庫執行個體，請設定並使用 PostgreSQL 稽核 (pgAudit) 擴充功能。此擴充功能會刪減傳送至日誌的 CREATE 和 ALTER 陳述式中的敏感資訊。如需詳細資訊，請參閱[使用 PgAudit 記錄資料庫活動](Appendix.PostgreSQL.CommonDBATasks.pgaudit.md)。
+ 限制對 CloudWatch 日誌的存取。
+ 使用更強大的身分驗證機制，例如 IAM。

## 將 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`

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

 