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

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

Aurora MySQL DB クラスターを設定して、全般ログ、スローログ、監査ログおよびエラーログのデータを Amazon CloudWatch Logs のロググループに発行できます。CloudWatch Logs を使用すると、ログデータのリアルタイム分析や、CloudWatch を使用したアラームの作成、メトリクスの表示を行うことができます。CloudWatch Logs を使用して、耐久性の高いストレージにログレコードを格納できます。

ログを CloudWatch Logs に発行するには、それぞれのログを有効にする必要があります。エラーログはデフォルトで有効になっていますが、他のタイプのログは明示的に有効にする必要があります。MySQL でログを有効にする方法については、MySQL ドキュメントの「一般クエリ―ログおよびスロークエリログの出力先の選択」を参照してください。Aurora MySQL 監査ログを有効にする方法については、「アドバンストな監査の有効化」を参照してください。

注記

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

  • 中国 (寧夏) リージョン向けに CloudWatch Logs にログを発行することはできません。

  • Aurora は、無効化された監査ログデータをエクスポートする場合に、既存のロググループまたはログストリーミングを削除しません。既存の監査ログデータが無効化されている場合、既存のログは保持期間により、CloudWatch Logs で使用可能となり、保管された監査ログデータに変更を加えることもできます。ログストリーミングとロググループは、CloudWatch Logs コンソール、AWS CLI または CloudWatch Logs API を使用して削除できます。

  • CloudWatch Logs に監査ログを発行する別の方法は、高度な監査を有効にし、クラスターレベルの DB パラメータ server_audit_logs_upload1 に設定することです。server_audit_logs_upload パラメータのデフォルト値は 0 です。

    この代替メソッドを使用する場合、CloudWatch Logs にアクセスして aws_default_logs_role クラスターレベルパラメータをこのロールの ARN に設定するには、IAM ロールが必要です。ロールの作成の詳細については、「AWS のサービスにアクセスするための IAM ロールの設定」を参照してください。ただし、AWSServiceRoleForRDS サービスにリンクされたロールがある場合、CloudWatch Logs へのアクセスが提供され、カスタム定義のロールが上書きされます。Amazon RDS のサービスにリンクされたロールの詳細については、「Amazon Aurora のサービスにリンクされたロールの使用」を参照してください。

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

  • Aurora Serverless v1 クラスターの場合、プロビジョンドインスタンスまたは Aurora Serverless v2 インスタンスがあるクラスターとは手順が少し異なり、Aurora Serverless v1 クラスターは、設定パラメータで有効にしたすべての種類のログを自動的にアップロードします。したがって、サーバーレスクラスターでログのアップロードを有効または無効にするには、DB クラスターのパラメータグループでログタイプ別にオンとオフを切り替えます。AWS Management Console、AWS CLI、または RDS API でクラスター自体の設定は変更しません。Aurora Serverless v1 クラスターの MySQL ログのオンとオフの詳細については、「Aurora Serverless v1 のパラメータグループ」を参照してください。

コンソールを使用して、プロビジョンドクラスターの Aurora MySQL ログを CloudWatch Logs に発行できます。

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

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

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

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

  4. 変更を選択します。

  5. [ログのエクスポート] セクションで、CloudWatch Logs に公開するログを選択します。

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

AWS CLI を使用して、プロビジョンドクラスターの Aurora MySQL ログを公開できます。これを行うには、以下のオプションを指定して modify-db-cluster AWS CLI コマンドを実行します。

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

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

以下の AWS CLI コマンドのいずれかを実行することで、Aurora MySQL ログを公開することもできます。

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

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

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

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

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

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

Linux、macOS、Unix の場合:

aws rds modify-db-cluster \ --db-cluster-identifier mydbcluster \ --cloudwatch-logs-export-configuration '{"EnableLogTypes":["error","general","slowquery","audit"]}'

Windows の場合:

aws rds modify-db-cluster ^ --db-cluster-identifier mydbcluster ^ --cloudwatch-logs-export-configuration '{"EnableLogTypes":["error","general","slowquery","audit"]}'

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

Linux、macOS、Unix の場合:

aws rds create-db-cluster \ --db-cluster-identifier mydbcluster \ --engine aurora \ --enable-cloudwatch-logs-exports '["error","general","slowquery","audit"]'

Windows の場合:

aws rds create-db-cluster ^ --db-cluster-identifier mydbcluster ^ --engine aurora ^ --enable-cloudwatch-logs-exports '["error","general","slowquery","audit"]'

RDS API を使用して、プロビジョンドクラスターの Aurora MySQL ログを発行できます。これを行うには、以下のオプションを指定して ModifyDBCluster オペレーションを実行します。

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

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

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

次のパラメータを指定して、RDS API オペレーションを実行します。

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

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

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

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

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

Aurora MySQL ログイベントを有効にすると、Amazon CloudWatch Logs でイベントをモニタリングできます。新しいクラスターロググループは、cluster-name が DB クラスター名となり、log_type がログタイプとなる次のプレフィックスの Aurora DB クラスターに自動的に作成されます。

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

例えば、エクスポート関数を設定して、mydbcluster という名前の DB クラスターのスロークエリログを作成すると、スロークエリデータは、/aws/rds/cluster/mydbcluster/slowquery ロググループのスロークエリログストリーミングに保存されます。

クラスターのすべてのインスタンスにおけるイベントは、異なるログストリーミングを使用して、ロググループにプッシュされます。この動作は、次の条件のうちのどちらが true であるかによって異なります。

  • 指定された名前のロググループが存在する。

    Aurora は既存のロググループを使用して、クラスターにログデータをエクスポートします。事前定義されたログ保持期間、メトリクスフィルター、カスタムアクセスを持つロググループを作成するために、AWS CloudFormationのような自動設定を使用できます。

  • 指定された名前のロググループが存在しない。

    一致するログエントリがインスタンスのログファイルで検出されると、Aurora MySQL は CloudWatch Logs に新しいロググループを自動的に作成します。ロググループは、失効しないデフォルトのログ保持期間を使用します。

    ログの保持期間を変更するには、CloudWatch Logs コンソール、AWS CLI、または CloudWatch Logs API を使用します。CloudWatch Logs でログの保持期間を変更する方法の詳細については、「CloudWatch Logs でのログデータ保管期間の変更」を参照してください。

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