Aurora PostgreSQL でのログ記録のパラメータ
さまざまなパラメータを変更することで、Aurora PostgreSQL DB クラスター のロギング動作をカスタマイズできます。次のテーブルには、ログの保存期間、ログをローテーションするタイミング、ログを CSV (カンマ区切り値) 形式で出力するかどうかなどに影響するパラメータがあります。他の設定の中でも、STDERR に送信されたテキスト出力を確認できます。変更可能なパラメータの設定を変更するには、Aurora PostgreSQL DB クラスターのカスタム DB クラスター パラメータグループを使用します。詳細については、「Amazon Aurora のパラメータグループ」を参照してください。
パラメータ | デフォルト | 説明 |
---|---|---|
log_destination |
stderr |
ログの出力形式を設定します。デフォルトは |
log_filename |
postgresql.log.%Y-%m-%d-%H%M |
ログファイル名のパターンを指定します。デフォルトに加えて、このパラメータはファイル名パターンの |
log_line_prefix |
%t:%r:%u@%d:[%p]: |
時間 (%t)、リモート ホスト (%r)、ユーザー (%u)、データベース (%d)、およびプロセス ID (%p) を記録するために、 |
log_rotation_age |
60 |
ログファイルが自動的にローテーションされるまでの分数。この値は、1~1,440 分の間で変更できます。詳細については、「ログファイルのローテーションの設定」を参照してください。 |
log_rotation_size |
– |
ログが自動的にローテーションされるサイズ (kB)。この値は 50,000~1,000,000 キロバイトの範囲で変更できます。詳細についてはログファイルのローテーションの設定を参照してください。 |
rds.log_retention_period |
4320 |
指定した時間 (分) より古い PostgreSQL ログは削除されます。デフォルト値の 4,320 分では、3 日後にログファイルが削除されます。詳細については、「ログの保持期間の設定」を参照してください。 |
アプリケーションの問題を特定するには、ログでクエリの失敗、ログインの失敗、デッドロック、および致命的なサーバーエラーを探すことができます。例えば、従来のアプリケーションを Oracle から Aurora PostgreSQL に変換したが、一部のクエリは正しく変換されなかったとします。これらの誤った形式のクエリは、ログにエラーメッセージを生成し、ログから問題を特定することができます。クエリログの詳細については、「Aurora PostgreSQL DB クラスターのクエリログ記録をオンにする」参照してください。
次のトピックでは、PostgreSQL ログの基本的な詳細を制御するさまざまなパラメータの設定方法について説明します。
ログの保持期間の設定
rds.log_retention_period
パラメータは、Aurora PostgreSQL DB クラスター がログファイルを保持する期間を指定します。デフォルトの設定は 3 日 (4,320 分) ですが、この値を 1 日 (1,440 分) から 7 日 (10,080 分) までの任意の時間に設定できます。Aurora PostgreSQL DB クラスター に、一定期間ログファイルを保持するのに十分なストレージがあることを確認してください。
ログを定期的に Amazon CloudWatch Logs に公開することをお勧めします。これにより、ログが Aurora PostgreSQL DB クラスターから削除された後も、システムデータを表示して分析できます。詳細については、Amazon CloudWatch Logs への Aurora PostgreSQL ログの発行。CloudWatch での公開を設定した後、ログが CloudWatch Logs に公開されるまで、Aurora はログを削除しません。
Amazon Aurora は、DB インスタンスのストレージがしきい値に達すると、古い PostgreSQL ログを圧縮します。Aurora は、gzip 圧縮ユーティリティを使用してファイルを圧縮します。詳細については、gzip
DB インスタンスのストレージが少なく、使用可能なすべてのログが圧縮されると、次のような警告が表示されます。
Warning: local storage for PostgreSQL log files is critically low for
this Aurora PostgreSQL instance, and could lead to a database outage.
十分なストレージがない場合、Aurora は指定した保持期間が終了する前に圧縮済みの PostgreSQL ログを削除する可能性があります。その場合は、次のようなメッセージが表示されます。
The oldest PostgreSQL log files were deleted due to local storage constraints.
ログファイルのローテーションの設定
Aurora は、デフォルトで 1 時間ごとに新しいログファイルを作成します。このタイミングは、log_rotation_age
パラメータによって制御されます。このパラメータのデフォルト値は 60 (分) ですが、1 分から 24 時間 (1,440 分) までの任意の時間に設定できます。ローテーションの時期になると、新しい個別のログファイルが作成されます。ファイルには、log_filename
パラメータによって指定されたパターンに従って名前が付けられます。
ログファイルは、log_rotation_size
パラメータで指定されたサイズに従ってローテーションすることもできます。このパラメータは、ログが指定されたサイズ (キロバイト単位) に達したときにローテーションされるように指定します。デフォルトの log_rotation_size
は、Aurora PostgreSQL DB クラスターの場合は 100,000 KB (キロバイト) ですが、この値を 50,000~1,000,000 キロバイトの任意の値に設定できます。
ログファイル名は、log_filename
パラメータで指定されたファイル名のパターンに基づきます。このパラメータに使用できる設定は次のとおりです。
-
postgresql.log.%Y-%m-%d
— ログファイル名のデフォルトフォーマット。年、月、日をログファイルの名前に含めます。 -
postgresql.log.%Y-%m-%d-%H
— ログファイル名形式に時間を含めます。 -
postgresql.log.%Y-%m-%d-%H%M
— 時間:分をログファイル名形式に含めます。
log_rotation_age
パラメータを 60 分未満に設定した場合は、log_filename
パラメータを分形式に設定します。
詳細については、PostgreSQL ドキュメントの「log_rotation_age
log_rotation_size
ログの送信先の設定 (stderr
、csvlog
)
デフォルトでは、Aurora PostgreSQL はスタンダードエラー (stderr) 形式でログを生成します。この形式は、log_destination
パラメータのデフォルト設定です。各メッセージには、log_line_prefix
パラメータで指定したパターンを使用してプレフィックスが付きます。詳細については、「log_line_prefix パラメータの概要」を参照してください。
Aurora PostgreSQL は、csvlog
フォーマットでログを生成することもできます。csvlog
は、ログデータをカンマ区切り値 (CSV) データとして分析する場合に便利です。例えば、log_fdw
拡張機能を使用して外部テーブルとしてログを使用するとします。stderr
ログファイルについて作成された外部テーブルには、ログイベントデータを含む 1 つの列が含まれます。log_destination
パラメータに csvlog
を追加すると、外部テーブルの複数の列の区切りを含む CSV 形式のログファイルが取得できます。ログをより簡単に分類して分析できるようになりました。
このパラメータに csvlog
を指定する場合、stderr
ファイル と csvlog
ファイルの両方が生成されることに注意してください。ログのストレージと回転率に影響する rds.log_retention_period
とその他の設定を考慮し、ログによって消費されるストレージに注意してください。stderr
と csvlog
を使用すると、ログで消費されるストレージが 2 倍以上になります。
log_destination
に csvlog
を追加して、stderr
だけに戻す場合は、パラメータをリセットする必要があります。そのためには、Amazon RDS コンソールを開いて、インスタンスのカスタム DB クラスター パラメータグループを開きます。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
– アプリケーション名