RDS MySQLスロークエリログ収集
スロークエリログにはしきい値制限を超えて実行されたクエリとなります。これらログの収集により、必要なクエリをチューニングできます。CloudWatchロググループからRDS MySQLスロークエリログを収集し、Lambda関数経由でSite24x7にそのログを送信できます。ログ管理機能についての詳細はこちら
Site24x7はAWSレビューのLambdaサービスプログラムパートナーです。
必要条件
MySQLインスタンスにパラメーターグループを関連付けて、必要なパラメーターを変更する必要があります。設定方法はAWSドキュメントを確認してください。
作成手順
RDS MySQLスロークエリログの監視設定手順は次のとおりです。
- RDS MySQLスロークエリログをCloudWatchロググループにエクスポート
- ログプロファイルを作成してログを収集
- Lambda関数を設定して、ログファイルをSite24x7に送信
RDS MySQLスロークエリログをCloudWatchロググループにエクスポート
初めに、スロークエリログをCloudWatchロググループにエクスポートする必要があります。設定手順は次のとおりです。
- 次のリンクをクリックして、Amazon RDSコンソールを開きます。https://console.aws.amazon.com/rds/
- 移動ペインで、データベースを選択して、スロークエリログを有効にしたいMySQL DBインスタンスを選択します。
- 修正をクリックします。
- ログレポート項目で、CloudWatchログに送信したいログを選択します。
- 続けるをクリックして、サマリページのDBインスタンスの修正をクリックします。
上記手順が完了すると、RDS MySQLスロークエリログがCloudWatchロググループへエクスポートされます。
ログプロファイルの作成
次に、ログプロファイルを作成して、RDS MySQLログを収集します。Site24x7で、管理 > アプリケーションログ > ログプロファイル > ログプロファイルの追加をクリックし、次の手順を行ってください。
- プロファイル名:ログプロファイルの名前を入力します。
- ログタイプ:RDS MySQLログを選択します。
- ログソース:Amazon Lambdaを選択します。
- 保存をクリックします。
Lambda関数の設定
次に、Lambda関数を設定し、CloudWatchグループで収集したログファイルをSite24x7に送信します。設定方法は次のとおりです。
- サービスドロップダウンリストからLambdaを選択し、関数の作成をクリックします。ゼロから作成を選択し、関数名を定義した後、Python 3.9 をランタイムとして選択します。
- 権限:既存のIAMロール、または基本的なLambda権限でロールの新規作成を行います。新規ユーザーロールの作成や他サービスへの権限拡張を行うこともできます。
- トリガーの追加:スクロールダウンして、CloudWatchログを選択します。
- トリガー設定
- ロググループ:ソースとするCloudWatchロググループを選択します。ここで、スロークエリログが書き込まれるロググループを選択する必要があります。選択したグループで発生したイベントすべてがLambda関数を呼び出します。
- ロググループ名の形式は次のようにします。(/aws/rds/instance/<db_instance_name>/slow)
- フィルター名:フィルターの名前を選択します。
- 追加をクリックします。
- 開かれたウィンドウで、Lambda関数を選択します。
- エディターにスクロールして、次のリンク内のコードを挿入します。
- コード入力後:
- Site24x7に移動します。
- 管理 > アプリケーションログ > ログプロファイルをクリックします。
- 作成したログプロファイルを選択します。
- 画面のコードをコピーします。
- コピーしたコードをAWSコンソールの項目名logTypeConfigにある環境変数配下にペーストします。
ログタイプに変更がある際は、ログプロファイルから新規キーを使用して、LambdaのlogTypeConfigキーを置換してください。
ダッシュボード
各ログタイプのダッシュボードが作成され、そこにはデフォルトで複数のウィジェットが表示されています。RDS MySQL Slow Queryログダッシュボードで表示できるウィジェットは次の画像のとおりです。
関連ログタイプ