ablog

不器用で落着きのない技術者のメモ

RDS/Aurora PostgreSQL のログ保持期間とローテーション設定

RDS/Aurora PostgreSQL のログ保持期間とローテーション設定のパラメータは以下の通り。

ログの保持期間の設定
システムログの保持期間を設定するには、 rds.log_retention_period パラメータを使用します。rds.log_retention_period は、DB インスタンスに関連付けられている DB パラメータグループにあります。このパラメータは分単位です。たとえば、1,440 に設定すると、ログは 1 日保持されます。デフォルト値は 4,320 (3 日間) です。最大値は 10,080 (7 日間) です。インスタンスには、保持するログファイルを格納するだけの十分な割り当てストレージが必要です。

Amazon Aurora は、DB インスタンスのストレージがしきい値に達すると、古い PostgreSQL ログを圧縮します。Aurora は、gzip 圧縮ユーティリティを使用してファイルを圧縮します。gzip の詳細については、gzip のウェブサイトを参照してください。DB インスタンスのストレージが少なく、使用可能なすべてのログが圧縮されると、次のような警告が表示されます。

Warning: local storage for PostgreSQL log files is critically low for
this Aurora PostgreSQL instance, and could lead to a databa

(中略)

ログファイルのローテーションの設定
PostgreSQL ログファイルのローテーションを制御するには、DB インスタンスに関連付けられた DB パラメータグループで、log_rotation_age および log_rotation_size の 2 つのパラメータを設定します。これら 2 つの設定は、新しい個別のログファイルを作成するタイミングを制御します。

ログファイル名は、log_filename パラメータのファイル名パターンに基づいています。たとえば、ログファイル名を 1 時間未満の粒度で指定する場合は、log_filename を分形式 (postgresql.log.%Y-%m-%d-%H%M) に設定します。1 時間未満の粒度は、PostgreSQL バージョン 10 以降でのみサポートされています。ログファイル名に時間単位の粒度を使用するには、log_filename を時間形式 (postgresql.log.%Y-%m-%d-%H) に設定します。

時間に基づいてログファイルのローテーションを制御するには、log_rotation_age パラメータを 1 分~1,440 分 (24 時間) の任意の値に設定します。log_rotation_age のデフォルトは 60 分です。log_rotation_age パラメータを 60 分未満に設定した場合は、log_filename パラメータも分形式に設定します。

ファイルサイズに基づいてログファイルの更新を制御するには、log_rotation_size パラメータを 50,000~1,000,000 KB の任意の値に設定します。デフォルトは 100,000 KB です。また、log_filename パラメータは分形式に設定することをお勧めします。これにより、log_rotation_age パラメータが 60 分以上の場合、1 時間未満で新しいログファイルを作成できます。

PostgreSQL データベースのログファイル - Amazon Aurora