RDS(Aurora MySQL)のログエクスポート
RDSのログをCloudWatchにエクスポート
ハマったこと
- RDSはインスタンス作成時に以下の種類のログエクスポートを選択することが可能です。デフォルトは無効です。
- 監査ログ
- エラーログ
- 全般ログ
- スロークエリログ
- 今回私がハマったポイントをご紹介します。RDSのインスタンス作成時にログエクスポートを設定しただけでは不足があり、RDSのログは一部しかCloudWatchにエクスポートされていなかったのです。RDSのインスタンス作成後にログエクスポートを有効にする設定を記載します。
- Amazon Aurora MySQLを例とします。
RDSログエクスポートの設定(Aurora MySQL)
- RDSのAWSコンソールを開き、パラメータグループを編集します。デフォルトのパラメータグループではなく、以下のようにパラメータをカスタマイズするために作ったパラメータグループが必要です。
- 全般ログとスロークエリログを有効にするために、下記の設定を変更します。
slow_query_log
: スロークエリログを作成するには、1 に設定します。デフォルトは 0 です。general_log
: 一般ログを作成するには、1 に設定します。デフォルトは 0 です。long_query_time
: ファストクエリがスロークエリログに記録されないようにするために、ログに記録されるクエリの最短実行時間の値を秒単位で指定します。デフォルトは 10 秒で、最小値は 0 です。log_output
:option
log_output
パラメーターに指定できるオプションは、次のとおりです。- TABLE(デフォルト)– 一般クエリを
mysql.general_log
テーブルに、スロークエリをmysql.slow_log
テーブルに書き込みます。 - FILE – 一般クエリログとスロークエリログの両方をファイルシステムに書き込みます。ログファイルは 1 時間ごとにローテーションされます。
- NONE – ログ記録を無効にします。
- TABLE(デフォルト)– 一般クエリを
- slow_query_log
- general_log
- long_query_time
- log_output
- 適用タイプがdynamicのため、インスタンスを再起動せずに適用できます。
- long_query_timeは以下AWSのナレッジを参考に、"2秒"としました。
- その他詳細は、ドキュメントを参照下さい。