現在の設定の確認方法
- スロークエリのログ出力がオンになっているか確認
SHOW VARIABLES LIKE 'slow_query%'
- 何秒をスロークエリと判断しているか確認
show variables like 'long%';
- スロークエリログを見る ※log_outputがTABLEになっている場合
SELECT * FROM mysql.slow_log;
スロークエリを出力させる手順
ログ関連の設定に限らず、RDSのサーバーには直接SSHすることはできないため、DBパラメーターの変更は「パラメーターグループ」を設定し、インスタンスに関連づけます。
動的パラメータは値の変更後すぐ適用、静的パラメータはDBインスタンスを手動で再起動することで適用されます。
スロークエリのログ出力のために変更が必要なパラメーターは全て動的パラメータのため、設定による再起動は不要です。
カスタムパラメーターグループの作成
- デフォルトのパラメーターグループは値を変更できないため、カスタムのパラメーターグループを作成し、以下の通り値を編集し、インスタンスに適用する。 MySQL データベースログファイル
- slow_query_log → 1
- long_query_time → 任意の秒数
- log_output → FILE(ClowdWatchに出力するために必要)
パラメーターグループの適用
- DBインスタンスの変更メニューから、作成したパラメーターグループを適用する。
- RDSは週次でメンテナンスが行われており(メンテナンスウィンドウ)、即時反映の場合を覗きインスタンスの設定変更はその時反映される。
- インスタンスの設定を変更する
- スロークエリにチェック
設定反映の確認
- 意図的に5秒のスロークエリを流す
select sleep(5);
- するとすぐにClowdWatchに新しいロググループが追加される。
アラームを作成する
-
Cloudwatchにログが出力された際にSNSに通知するには、メトリクスに対してアラームを作成します。
-
該当のロググループの「IncomingLogEvents」を選択(参考)