Aurora(PostgreSQL)のログ出力と表示


Auroraのログの設定

Auroraのログは、DBインスタンスのローカルストレージに保存されます。
ログの保持期間はrds.log_retention_periodパラメータで設定でき、デフォルト値は4,320(3日間)で、最大は10,080(7日間)です。

DBインスタンスのストレージが不足する場合はgzipで圧縮されます。圧縮してもストレージが不足する場合はログが削除されます。ストレージが大きいDBインスタンスクラスへ変更したら解決しますが、いずれにしてもログの保持期間が最大でも7日間ですので、ログを長期間保存する場合はCloudWatch Logsに発行します。

ログの設定はパラメータグループから変更できます。
パラメータ選択した後、以下の画面でパラメータを変更します。変更可能が"true"になっている項目が変更対象です。

今回は以下のように設定を変更しました。

# 原因となったSQLを出力するログレベル
log_min_error_statement = warning
# スロークエリをログに出力する(ミリ秒)
log_min_duration_statement = 500
# ロック待ちの情報を出力する
log_lock_waits = 1
# 一時ファイルの情報を出力する
log_temp_files = 0
# サーバへの接続試行がログに残す
log_connections = 1
# クライアント接続の終了をログに残す
log_disconnections = 1

Auroraの場合は、通常のPostgreSQLに存在する以下の設定はないようです。これはAuroraにはチェックポイント、Vacuumという仕組みが異なるから?

# チェックポイントの情報を出力する
log_checkpoints = on
# 設定した時間以上かかった自動VACUUMの情報を出力する
log_autovacuum_min_duration = 5000

Auroraのログの閲覧

Auroraのログはコンソール、AWS CLI、RDS APIを使用して、表示やダウンロードができます。
Auroraのログについては以下のページに説明が記載されています。

コンソールからログを確認する場合は、データベースのインスタンスを選択して、「ログとイベント」タブを選択します。


CloudWatch Logsへのログ出力

Aurora(PostgreSQL)のログをAmazon CloudWatch Logsのロググループに発行することができます。
保持期間を指定しない場合は、無期限に保持されます。インスタンスのストレージのログは最大7日間までしか保存できないので、CloudWatch Logsへ発行することになるかと思います。

CloudWatch Logsへ発行方法は以下のページに記載があります。

CloudWatch Logsへ発行方法する場合は、以下の画面でクラスターを選択し、「変更」を選択します。

次に[ログのエクスポート] で、「Postgresql log」にチェックを入れて「次へ」を押します。

最後に「変更の概要」で変更内容を確認し、「クラスターの変更」を押します。

画面からだけでなくAWS CLI、RDS APIでも設定を変更することができます。

CloudWatch Logsでのログ確認

CloudWatch Logsに保存されたログを確認するためには、まず画面から「ロググループ」を選択し、該当のロググループを選択します。
以下では、「/aws/rds/cluster/database-1/postgresql」を選択します。

ロググループを選択すると、ログストリームの一覧が表示されます。
ログストリームはインスタンス毎に作成されます。

ログストリームを選択すると、以下のようにログが表示されます。

参考