Amazon RDS MySQL DB インスタンスのログを有効にしてモニタリングする方法を教えてください。

最終更新日: 2021 年 2 月 15 日

MySQL を実行している Amazon Relational Database Service (Amazon RDS) インスタンスのエラーログ、スロークエリログ、および一般ログを有効にしてモニタリングしたいと考えています。これはどのように実行できますか?

簡単な説明

MySQL のエラーログ、スロークエリログ、一般ログは、Amazon RDS コンソールAmazon RDS APIAmazon RDS AWS コマンドラインインターフェイス (AWS CLI)、または AWS SDK を使用して、直接モニタリングすることができます。MySQL エラーログファイルは、デフォルトで生成されます。低速クエリログと一般ログを生成できます。

解決方法

注: AWS CLI コマンドの実行時にエラーが発生した場合は、AWS CLI の最新バージョンを使用していることを確認してください

まず、カスタム DB パラメータグループを作成し、パラメータを変更します。その後、パラメータグループを MySQL インスタンスに関連付けます。

DB パラメータグループを作成する

  1. Amazon RDS コンソールを開き、ナビゲーションペインから [パラメータグループ] を選択します。
  2. [Create parameter group] (パラメータグループの作成) を選択します。
  3. [Parameter group family] (パラメータグループファミリー) ドロップダウンリストから、DB パラメータグループファミリーを選択します。
  4. [Type] (タイプ) で、[DB Parameter Group] (DB パラメータグループ) を選択します。
  5. [Group name] (グループ名) フィールドに名前を入力します。
  6. [Description] (説明) フィールドに、説明を入力します。
  7. [Create] (作成) をクリックします。

新しいパラメータグループを変更する

  1. Amazon RDS コンソールを開き、ナビゲーションペインから [パラメータグループ] を選択します。
  2. 変更するパラメータグループを選択します。
  3. [Parameter group actions] (パラメータグループアクション) を選択してから、[Edit] (編集) を選択します。
  4. [Edit parameters] (パラメータの編集) を選択し、次のパラメータをその値に設定します。
    General_log = 1 (デフォルト値は 0 またはログ記録なし)
    Slow_query_log = 1 (デフォルト値は 0 またはログ記録なし)
    Long_query_time = 2 (2 秒より長く実行されるクエリを記録するため)
    log_output = FILE (一般クエリログとスロークエリログをいずれもファイルシステムに書き込み、Amazon RDS コンソールからのログを表示できるようにする)
    log_output = TABLE (クエリをテーブルに書き込み、クエリでこれらのログを表示できるようにする)
  5. [Save Changes] (変更を保存) を選択します。
    注意: デフォルトの DB パラメータグループのパラメータ設定は変更できません。[変更可能] が true に設定されている場合、カスタム DB パラメータグループのパラメータを変更できます。

インスタンスを DB パラメータグループに関連付ける

  1. Amazon RDS コンソールを開き、ナビゲーションペインから [Databases] (データベース) を選択します。
  2. DB パラメータグループに関連付けるインスタンスを選択してから、[Modify] (変更) を選択します。
  3. [データベースオプション] セクションで、DB インスタンスに関連付ける DB パラメータグループを選択します。
  4. [Continue] (続行) を選択します。

    注: パラメータグループ名は即時に変更、適用されますが、パラメータグループは、手動でインスタンスを再起動するまで適用されません。DB インスタンスを再起動すると、一時的に停止し、インスタンスのステータスが [rebooting] (再起動中) と表示されます。

log_output =TABLE の場合は、次のコマンドを実行してログテーブルをクエリします。

Select * from mysql.slow_log
Select * from mysql.general_log

注: テーブルログを有効にすると、高スループットのワークロードのデータベースのパフォーマンスに影響する可能性があります。テーブルベースの MySQL ログの詳細については、「テーブルベースの MySQL ログを管理する」をご参照ください。