LoginSignup
11
7

More than 1 year has passed since last update.

RDS for MySQLでスロークエリログを出力させる

Last updated at Posted at 2021-06-25

現在の設定の確認方法

  • スロークエリのログ出力がオンになっているか確認
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に出力するために必要)

100857160-b5542f80-34cf-11eb-85f6-23a9fe329226.png

パラメーターグループの適用

  • DBインスタンスの変更メニューから、作成したパラメーターグループを適用する。
  • RDSは週次でメンテナンスが行われており(メンテナンスウィンドウ)、即時反映の場合を覗きインスタンスの設定変更はその時反映される。

100857173-b8e7b680-34cf-11eb-8452-d134b1f2d966.png

  • インスタンスの設定を変更する
    • スロークエリにチェック

100857179-bbe2a700-34cf-11eb-9896-ab0152974e48.png

設定反映の確認

  • 意図的に5秒のスロークエリを流す
select sleep(5); 
  • するとすぐにClowdWatchに新しいロググループが追加される。

アラームを作成する

  • Cloudwatchにログが出力された際にSNSに通知するには、メトリクスに対してアラームを作成します。
  • コンソールからアラームの作成を選択
    100857199-c1d88800-34cf-11eb-9feb-d8a8f79dcb20.png

  • メトリクスの選択で「ログ」を選択
    100857200-c2711e80-34cf-11eb-9dcb-1c88db6e9073.png

  • 該当のロググループの「IncomingLogEvents」を選択(参考
    100857203-c3a24b80-34cf-11eb-8195-d90c82027e01.png

  • 今回は合計が0より大きい場合にアラームを出す
    100857187-be450100-34cf-11eb-8e51-9e8f208d0968.png

  • 通知したいSNSトピックを選択もしくは新規作成
    100857191-bf762e00-34cf-11eb-951e-43ceeb03c28f.png

参考

公式

その他

11
7
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
11
7