用於記錄 RDS for PostgreSQL 的參數 - Amazon Relational Database Service

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

用於記錄 RDS for PostgreSQL 的參數

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

參數 預設 描述

log_destination

stderr

設定日誌的輸出格式。預設值是 stderr,但您也可以將 csvlog 新增至設定來指定逗號分隔值 (CSV)。如需詳細資訊,請參閱設定日誌目標 (stderr、csvlog)

log_filename

postgresql.log.%Y-%m-%d-%H

指定日誌檔名稱的模式。除了預設值之外,此參數還支援檔案名稱模式的 postgresql.log.%Y-%m-%dpostgresql.log.%Y-%m-%d-%H%M

log_line_prefix

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

定義寫入至 stderr 的每個日誌行的字首,以記錄時間 (%t)、遠端主機 (%r)、使用者 (%u)、資料庫 (%d) 和程序 ID (%p)。

log_rotation_age

60

日誌檔會多少分鐘後自動轉換。您可以在 1 到 1440 分鐘的範圍內變更此值。如需詳細資訊,請參閱設定日誌檔案輪換

log_rotation_size

日誌檔自動轉換的大小 (kB)。根據預設,不會使用此參數,因為日誌會根據 log_rotation_age 參數輪換。如需詳細資訊,請參閱 設定日誌檔案輪換

rds.log_retention_period

4320

早於指定分鐘數的 PostgreSQL 日誌將遭到刪除。預設值 4320 分鐘將在 3 天後刪除日誌檔案。如需詳細資訊,請參閱設定日誌保留期間

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

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

設定日誌保留期間

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

設定日誌檔案輪換

依預設,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 文件中的 log_rotation_agelog_rotation_size

設定日誌目標 (stderrcsvlog)

預設情況下,Amazon RDS PostgreSQL 生成標準錯誤 (stderr) 格式的日誌。此格式為 log_destination 參數的預設設定。每則訊息都會使用 log_line_prefix 參數中指定的模式作為字首。如需詳細資訊,請參閱了解 log_line_prefix 參數

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

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

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

如需有關設定日誌記錄的詳細資訊,請參閱使用 Amazon RDS 和 Aurora PostgreSQL 日誌:第 1 部分

了解 log_line_prefix 參數

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 – 應用程式名稱