はじめに
Amazon RDS を運用していると、一般ログ、エラーログ、スロークエリログ、監査ログを確認したい場面があります。
本記事では、これらのログを CloudWatch Logs に出力する手順をまとめます。
前提
- 対象: RDS for MySQL
手順概要
RDS のログを CloudWatch Logs に出力するには、以下が必要です。
- パラメータグループの設定
- オプショングループの設定
- RDSの変更
- CloudWatch Logs で確認
- 最終確認
1. パラメータグループの設定
デフォルトパラメータを使用している人はカスタムパラメータを使用する必要があります。
デフォルトパラメータは値の変更ができないためです。
今回わたしはmysql8.4を使用していたので8.4で作成しています。
注意する必要あるのが、一般ログ、スロークエリログを新たにCloudWatch Logsへエクスポートしたい場合は、デフォルトパラメータグループからカスタムパラメータグループに関連付けを変更する必要があります。
一般ログ、スロークエリログは動的なので再起動が必要ないと思われがちですが、RDSに関連づけられているパラメータグループが、デフォルトの場合はカスタムに変更する必要があります。
そのため反映のためにはRDSの再起動が必要です。
以下カスタムパラメータグループの設定例です
一般ログ
general_log = 1
スロークエリログ
slow_query_log = 1long_query_time = 2(任意の秒数)log_output = FILE
2.オプショングループの設定
監査ログを出力するにはデフォルトオプショングループではなく、カスタムオプショングループを使用する必要があります。
オプションの追加(変更)で MARIADB_AUDIT_PLUGIN を追加する必要があります。
監査ログ の記録にはこのプラグインが必要です。
特にこだわりがなければ以下の様にデフォのままで問題ないですが、カスタマイズも可能です。
設定が終わったらすぐに適用にYesを付けてオプションの変更を実施してください。

MariaDB 監査プラグインを DB インスタンスに追加すると、停止する可能性があります。MariaDB 監査プラグインは、メンテナンス期間中またはデータベースのワークロードが低い時間帯に追加することをお勧めします。
3. RDSの変更
RDSの変更ボタンをクリックし、
まずはパラメータグループとオプショングループを先ほど作成したカスタムパラメータグループとカスタムオプショングループに変更してください。

次にログのエクスポートでエラーログ、全般ログ、スロークエリログ、監査ログにチェックを付け、設定を反映してください。

しかしここで反映しただけではスロークエリログは発行されません。RDSの手動再起動が必要ですので手動で再起動してください。
DB インスタンスの再起動のユースケース
4. CloudWatch Logs で確認
CloudWatch Logs で以下のロググループが作成されていることを確認します。
/aws/rds/instance/<DBインスタンス名>/error/aws/rds/instance/<DBインスタンス名>/general/aws/rds/instance/<DBインスタンス名>/slowquery/aws/rds/instance/<DBインスタンス名>/audit
※slowqueryに関しては出ていない場合もあります。その際は5.最終確認を参考にしてください。
5. 最終確認
slowqueryなどを意図的に発行してみて記録されるかどうか、出力されていない場合は確認すると良いです。
以下コマンドをSQLで実行してください。
スロークエリログが発行されます。
SELECT SLEEP(5);
最終的に以下4つがCloudWatch Logsに出力されたら完了です。

ポイント
- 監査ログの適用で、MariaDB 監査プラグインを DB インスタンスに追加すると、停止する可能性 がある。
- スロークエリログ、一般ログを出したい時、デフォルトパラメータを使用していた場合は、反映に RDS再起動が必要。 (元からカスタムパラメータを使用していた場合は動的に変更できるので再起動不要)


