RDS for PostgreSQL データベースログファイル
RDS for PostgreSQL では、データベースアクティビティをデフォルトの PostgreSQL ログファイルに記録します。オンプレミスの PostgreSQL DB インスタンスの場合、これらのメッセージは log/postgresql.log
にローカルに保存されます。、RDS for PostgreSQL DB インスタンスの場合、ログファイルは Amazon RDS インスタンスにあります。また、Amazon RDS コンソールを使用して、コンテンツを表示またはダウンロードする必要があります。デフォルトのロギングレベルは、ログインの失敗、致命的なサーバーエラー、デッドロック、およびクエリエラーをキャプチャします。
ファイルベースのデータベースログの表示、ダウンロード、モニタリングの方法の詳細については、「Amazon RDS ログファイルのモニタリング」を参照してください。PostgreSQL ログの詳細については、「Amazon RDS および Aurora PostgreSQL ログの操作: パート 1
このトピックで説明した標準の PostgreSQL ログに加えて、 RDS for PostgreSQL は PostgreSQL 監査エクステンション (pgAudit
) もサポートしています。規制対象の業界や政府機関のほとんどは、法的要件に準拠するために、データに加えられた変更の監査ログまたは監査証跡を維持する必要があります。pgAudit のインストールおよび使用の詳細については、「pgAudit を使用してデータベースのアクティビティを記録する」を参照してください。
トピック
Amazon CloudWatch Logs への PostgreSQL ログの発行
PostgreSQL ログレコードを高い耐久性の高いのストレージに保存するには、Amazon CloudWatch Logs を使用できます。CloudWatch Logs では、ログデータのリアルタイム分析を実行したり、CloudWatch を使用してメトリクスを表示したり、アラームを作成したりすることもできます。例えば、log_statement
を ddl
に設定した場合、DDL ステートメントが実行されるたびに警告するアラームを設定できます。RDS for PostgreSQL DB インスタンスの作成プロセス中に PostgreSQL が CloudWatch Logs のログをアップロードするように選択できます。その時点でログをアップロードしないことを選択した場合は、後でインスタンスを変更してその時点からログのアップロードを開始できます。つまり、既存のログはアップロードされません。変更した RDS for PostgreSQL DB インスタンスで作成された新しいログのみがアップロードされます。
現在の PostgreSQL バージョンで利用可能なすべての RDS は、CloudWatch Logs へのログファイルの発行をサポートしています。詳細については、「Amazon RDS for PostgreSQL リリースノート」の「Amazon RDS for PostgreSQL の更新」を参照してください。
CloudWatch Logs を操作するには、ログデータをロググループに発行するように PostgreSQL DB インスタンス用 RDS を設定します。
RDS for PostgreSQL では、次のログの種類を CloudWatch Logs に発行できます。
-
Postgresql ログ
-
アップグレードログ
設定が完了すると、Amazon RDS はログイベントを CloudWatch ロググループのログストリーミングに発行します。例えば、PostgreSQL ログデータは /aws/rds/instance/
ロググループに保存されます。ログを表示するには、https://console.aws.amazon.com/cloudwatch/my_instance
/postgresql
コンソールを使用して CloudWatch Logs に PostgreSQL ログを発行するには
Amazon RDS コンソール (https://console.aws.amazon.com/rds/
) を開きます。 -
ナビゲーションペインで、[データベース] を選択します。
-
変更する DB インスタンスを選択してから、[変更] を選択します。
-
[ログのエクスポート] セクションで、CloudWatch Logs に公開するログを選択します。
[ログのエクスポート] セクションは、CloudWatch Logs への発行をサポートしている PostgreSQL バージョンでのみ使用できます。
-
[続行] を選択し、概要ページで [Modify DB Instance] (DB インスタンスの変更) を選択します。
PostgreSQL ログは、AWS CLI を使用して発行することができます。以下のパラメータを使用して、modify-db-instance
コマンドを呼び出せます。
-
--db-instance-identifier
-
--cloudwatch-logs-export-configuration
注記
--cloudwatch-logs-export-configuration
オプションへの変更は常に DB インスタンスに即時適用されます。それで、--apply-immediately
と --no-apply-immediately
オプションは効果がありません。
以下の CLI コマンドを呼び出すことで PostgreSQL ログを発行することもできます。
以下のオプションを使用して、これらの CLI コマンドの 1 つを実行します。
-
--db-instance-identifier
-
--enable-cloudwatch-logs-exports
-
--db-instance-class
-
--engine
実行する CLI コマンドに応じて、他のオプションが必要となる場合があります。
例 CloudWatch Logs にログを発行するようにインスタンスを変更する
次の例では、ログファイルが CloudWatch Logs に発行されるよう既存の PostgreSQL DB インスタンスを変更します。--cloudwatch-logs-export-configuration
値は JSON オブジェクトです。このオブジェクトのキーは EnableLogTypes
であり、値は postgresql
と upgrade
を任意に組み合わせた文字列の配列です。
Linux、macOS、Unix の場合:
aws rds modify-db-instance \ --db-instance-identifier
mydbinstance
\ --cloudwatch-logs-export-configuration '{"EnableLogTypes":["postgresql", "upgrade"]}'
Windows の場合:
aws rds modify-db-instance ^ --db-instance-identifier
mydbinstance
^ --cloudwatch-logs-export-configuration '{"EnableLogTypes":["postgresql","upgrade"]}'
例 CloudWatch Logs にログを発行するようにインスタンスを作成する
次の例では、PostgreSQL DB インスタンスを作成してログファイルを CloudWatch Logs に発行します。--enable-cloudwatch-logs-exports
値は、JSON 形式の文字列の配列です。この文字列は postgresql
と upgrade
の任意の組み合わせです。
Linux、macOS、Unix の場合:
aws rds create-db-instance \ --db-instance-identifier
mydbinstance
\ --enable-cloudwatch-logs-exports '["postgresql","upgrade"]' \ --db-instance-classdb.m4.large
\ --enginepostgres
Windows の場合:
aws rds create-db-instance ^ --db-instance-identifier
mydbinstance
^ --enable-cloudwatch-logs-exports '["postgresql","upgrade"]' ^ --db-instance-classdb.m4.large
^ --enginepostgres
PostgreSQL ログは、RDS API を使用して発行することができます。以下のパラメータを使用して、ModifyDBInstance
アクションを呼び出せます。
-
DBInstanceIdentifier
-
CloudwatchLogsExportConfiguration
注記
CloudwatchLogsExportConfiguration
パラメータへの変更は常に DB インスタンスに即時適用されます。それで、ApplyImmediately
パラメータは効果がありません。
以下の RDS API オペレーションを呼び出すことで PostgreSQL ログを発行することもできます。
以下のパラメータでこの RDS API オペレーションの 1 つを実行します。
-
DBInstanceIdentifier
-
EnableCloudwatchLogsExports
-
Engine
-
DBInstanceClass
実行するオペレーションに応じて、他のパラメータが必要となる場合があります。