Amazon CloudWatch Logs への Aurora PostgreSQL ログの発行 - Amazon Aurora

Amazon CloudWatch Logs への Aurora PostgreSQL ログの発行

ログデータを Amazon CloudWatch Logs のロググループに発行するように、Aurora PostgreSQL DB クラスターを設定することができます。CloudWatch Logs を使用すると、ログデータのリアルタイム分析や、CloudWatch を使用したアラームの作成、メトリクスの表示を行うことができます。CloudWatch Logs を使用して、耐久性の高いストレージにログレコードを格納できます。アップグレードログと postgresql ログの両方を発行できる PostgreSQL の RDS とは異なり、Aurora PostgreSQL は postgresql ログの CloudWatch Logs へのアップロードのみをサポートします。

Aurora PostgreSQL は、次のバージョンで CloudWatch Logs へのログの発行をサポートしています。

  • 13.3 以降の 13 バージョン

  • 12.4 以降の 12 バージョン

  • 11.6 以降の 11 バージョン

  • 10.11 以降の 10 バージョン

注記

以下の点に注意してください。

  • Aurora は、無効化された監査ログデータをエクスポートする場合に、既存のロググループまたはログストリーミングを削除しません。

  • ログデータのエキスポートが無効になっている場合、既存のログデータはログ保持期間の設定に基づいて CloudWatch Logs で引き続き使用可能です。これは、保管された監査ログデータに対する費用が発生することを意味します。ログストリーミングとロググループは、CloudWatch Logs コンソール、AWS CLI または CloudWatch Logs API を使用して削除できます。

  • 監査ログを CloudWatch Logs にエクスポートしない場合は、監査ログをエクスポートするすべてのメソッドが無効になっていることを確認してください。これらのメソッドは AWS Management Console、AWS CLI、RDS API です。

Amazon CloudWatch へのログの発行

Amazon CloudWatch Logs に Aurora PostgreSQL ログを発行するには、AWS Management Console、AWS CLI、または RDS API を使用します。

コンソールを使用して CloudWatch Logs に Aurora PostgreSQL ログを発行することができます。

コンソールから Aurora PostgreSQL ログを発行するには

  1. Amazon RDS コンソール (https://console.aws.amazon.com/rds/) を開きます。

  2. ナビゲーションペインで、[データベース] を選択します。

  3. ログデータを公開する Aurora PostgreSQL DB クラスターを選択します。

  4. [Modify] を選択します。

  5. [ログのエクスポート] セクションで、[Postgresql ログ] を選択します。

  6. [続行] を選択し、概要ページで [クラスターの変更] を選択します。

Aurora PostgreSQL ログは、AWS CLI を使用して発行することができます。以下のいずれかのオプションを指定して modify-db-cluster AWS CLI コマンドを実行できます。

  • --db-cluster-identifier— DB クラスター識別子。

  • --cloudwatch-logs-export-configuration―DB クラスターで、CloudWatch Logs へエクスポートするログタイプを設定するための環境設定。

また、以下の AWS CLI コマンドのいずれかを実行して、Aurora PostgreSQL ログを発行することもできます。

以下のオプションを使用して、この AWS CLI コマンドの 1 つを実行します。

  • --db-cluster-identifier— DB クラスター識別子。

  • --engine — データベースエンジン。

  • --enable-cloudwatch-logs-exports — DB クラスターの CloudWatch Logs へのエクスポートに使用できるログタイプの構成設定。

実行する AWS CLI コマンドに応じて、他のオプションが必要となる場合があります。

次のコマンドでは、ログファイルが CloudWatch Logs に発行されるよう Aurora PostgreSQL DB クラスターを作成します。

Linux、macOS、Unix の場合:

aws rds create-db-cluster \ --db-cluster-identifier my-db-cluster \ --engine aurora-postgresql \ --enable-cloudwatch-logs-exports postgresql

Windows の場合:

aws rds create-db-cluster ^ --db-cluster-identifier my-db-cluster ^ --engine aurora-postgresql ^ --enable-cloudwatch-logs-exports postgresql

次のコマンドでは、ログファイルが CloudWatch Logs に発行されるよう既存の Aurora PostgreSQL DB クラスターを変更します。--cloudwatch-logs-export-configuration 値は JSON オブジェクトです。このオブジェクトのキーは EnableLogTypes で、その値は postgresql です。

Linux、macOS、Unix の場合:

aws rds modify-db-cluster \ --db-cluster-identifier my-db-cluster \ --cloudwatch-logs-export-configuration '{"EnableLogTypes":["postgresql"]}'

Windows の場合:

aws rds modify-db-cluster ^ --db-cluster-identifier my-db-cluster ^ --cloudwatch-logs-export-configuration '{\"EnableLogTypes\":[\"postgresql\"]}'
注記

Windows コマンドプロンプトを使用する場合、バックラッシュ (\)でプレフィックスして JSON コードの二重引用符 (")をエスケープする必要があります。

次の例では、既存の Aurora PostgreSQL DB クラスターを変更して、CloudWatch Logs へのログファイルの発行を無効にします。--cloudwatch-logs-export-configuration 値は JSON オブジェクトです。このオブジェクトのキーは DisableLogTypes で、その値は postgresql です。

Linux、macOS、Unix の場合:

aws rds modify-db-cluster \ --db-cluster-identifier mydbinstance \ --cloudwatch-logs-export-configuration '{"DisableLogTypes":["postgresql"]}'

Windows の場合:

aws rds modify-db-cluster ^ --db-cluster-identifier mydbinstance ^ --cloudwatch-logs-export-configuration "{\"DisableLogTypes\":[\"postgresql\"]}"
注記

Windows コマンドプロンプトを使用する場合、JSON コードでは、二重引用符 (") の前にバックスラッシュ (\) を付けてエスケープする必要があります。

Aurora PostgreSQL ログは、RDS API を使用して発行することができます。以下のオプションで、ModifyDBCluster オペレーションを実行します:

  • DBClusterIdentifier - DB クラスター識別子。

  • CloudwatchLogsExportConfiguration - DB クラスターの CloudWatch Logs にエクスポートするログタイプを有効化するための環境設定。

以下の RDS API オペレーションのいずれかを実行することで、RDS API を使用して Aurora PostgreSQL ログを発行することもできます。

次のパラメータを指定して RDS API アクションを実行します。

  • DBClusterIdentifier— DB クラスター識別子。

  • Engine — データベースエンジン。

  • EnableCloudwatchLogsExports — DB クラスターの CloudWatch Logs へのエクスポートに使用できるログタイプの構成設定。

実行する AWS CLI コマンドに応じて、他のパラメータが必要となる場合があります。

Amazon CloudWatch でログイベントをモニタリングする

Aurora PostgreSQL ログイベントを有効にすると、Amazon CloudWatch Logs でイベントをモニタリングできます。モニタリングの詳細については、「CloudWatch Logs に送信されたログデータを表示する」を参照してください。

新しいロググループは、次のプレフィックス名義で Aurora DB クラスターに自動的に作成されます。このプレフィックスでは、cluster-name は DB クラスター名を指し、log_type はログタイプを指しています。

/aws/rds/cluster/cluster-name/log_type

例えば、エクスポート関数を設定して、my-db-cluster という名前の DB クラスターの postgresql ログを含んでいるとします。この場合、PostgreSQL ログデータは /aws/rds/cluster/my-db-cluster/postgresql ロググループに保存されます。

DB クラスターのすべての DB インスタンス におけるすべてのイベントは、別々のログストリーミングを使用してロググループにプッシュされます。

指定する名前のロググループがすでに存在する場合、Aurora はこのロググループを使用して Aurora DB クラスターにログデータをエクスポートします。事前定義された保持期間、メトリックフィルター、カスタムアクセスのロググループを作成するには、AWS CloudFormation のような自動設定を使用できます。それ以外の場合は、デフォルトのログ保持期間である [失効しない] を使用して新規のロググループが自動的に CloudWatch Logs に作成されます。ログの保持期間を変更するには、CloudWatch Logs コンソール、AWS CLI、または CloudWatch Logs API を使用します。CloudWatch Logs でログの保持期間を変更する方法の詳細については、「CloudWatch Logs でのログデータ保管期間の変更」を参照してください。

DB クラスターのログイベント内の情報を検索するには、CloudWatch Logs コンソール、AWS CLI、または CloudWatch Logs API を使用します。検索およびログデータのフィルタ処理の詳細については、「ログデータの検索およびフィルタ処理」を参照してください。

CloudWatch Logs インサイトを使用した Aurora PostgreSQL のログ分析

Aurora PostgreSQL ログを CloudWatch Logs に発行した後、CloudWatch Logs インサイトを使用してログをグラフで分析したりダッシュボードを作成することができます。

CloudWatch Logs インサイトを使用して Aurora PostgreSQL ログを分析する方法

  1. CloudWatch コンソール (https://console.aws.amazon.com/cloudwatch/) を開きます。

  2. ナビゲーションペインでログを開いて ログインサイト を選択します。

  3. ロググループの選択で、DB クラスターのロググループを選択します。

    
                        Aurora PostgreSQL ロググループを選択します。
  4. クエリエディタで、現在表示されているクエリを削除し、以下を入力してクエリの実行を選択します。

    ##Autovacuum execution time in seconds per 5 minute fields @message | parse @message "elapsed: * s" as @duration_sec | filter @message like / automatic vacuum / | display @duration_sec | sort @timestamp | stats avg(@duration_sec) as avg_duration_sec, max(@duration_sec) as max_duration_sec by bin(5 min)
    
                        クエリエディタでクエリを実行する。
  5. [Visualization (視覚化)] タブを選択します。

    
                        Visualization (視覚化) タブ。
  6. [ダッシュボードに追加] を選択します。

  7. ダッシュボードを選択で、ダッシュボードを選択するか、名前を入力して新しいダッシュボードを作成します。

  8. ウィジェットのタイプで、視覚化のウィジェットタイプを選択します。

    
                         ダッシュボード。
  9. (オプション) ログクエリの結果に基づいてウィジェットを追加します。

    1. [ウィジェットの追加] を選択します。

    2. Line などの、ウィジェットタイプを選択します。

      
                                ウィジェットを選択します。
    3. このダッシュボードに追加するウィンドウで、ログを選択します。

      
                                ダッシュボードにログを追加します。
    4. ロググループの選択で、DB クラスターのロググループを選択します。

    5. クエリエディタで、現在表示されているクエリを削除し、以下を入力してクエリの実行を選択します。

      ##Autovacuum tuples statistics per 5 min fields @timestamp, @message | parse @message "tuples: " as @tuples_temp | parse @tuples_temp "* removed," as @tuples_removed | parse @tuples_temp "remain, * are dead but not yet removable, " as @tuples_not_removable | filter @message like / automatic vacuum / | sort @timestamp | stats avg(@tuples_removed) as avg_tuples_removed, avg(@tuples_not_removable) as avg_tuples_not_removable by bin(5 min)
      
                                クエリエディタでクエリを実行する。
    6. [ウィジェットの作成] を選択します。

      ダッシュボードは次のイメージのような見た目になっている必要があります。

      
                                2 つのグラフを含むダッシュボード。