【Amazon RDS】【MySQL 8.0.26】各種ログの有効化/無効化について

ログを取得し、CloudWatchへ配信する最小設定を記載します。
2022.02.24

この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。

Amazon RDS では MySQL バージョン 8.0 の MariaDB 監査プラグインをサポートしています。 監査ログ含め、Amazon RDSにおける各種ログの有効化/無効化を設定する方法を記載します。

環境

  • MySQL 8.0.26

ログの有効化

監査

監査ログの有効化には、MariaDB 監査プラグインの設定を行う必要があります。
オプショングループを新規作成し、「オプションを変更」より、MARIADB_AUDIT_PLUGINを選択し、 SERVER_AUDIT_LOGGING: ON(デフォルト)にします。

他のオプション値をカスタマイズし適用する場合は、「監査プラグインのオプション設定」をご参照ください。記事最下部のMySQLリファレンスも合わせてご参照ください。

see:

現在のところ、MariaDB 監査プラグインは以下の RDS for MySQL バージョンでのみサポートされています。
・ MySQL のバージョン 8.0 (8.0.25 以降)
・ MySQL の バージョン 5.7 (5.7.16 以降)
・ すべての 5.6 バージョン
MariaDB 監査プラグインのサポート

合わせて読みたい(※2016年):

【新機能】Amazon RDSのMySQLとMariaDBで監査ログに対応。ついでにrdsadminの動作も確認してみた。

スロークエリ

スロークエリログの有効化は、パラメーターグループにslow_query_log:1を設定する必要があります。合わせて、long_query_timeも設定しておくと良さそうです。
記事最下部のMySQLリファレンスも合わせてご参照ください。

項目 備考
slow_query_log 1 スロークエリ有効化
long_query_time 5 実行時間のしきい値(秒)

一般ログ

一般ログの有効化は、パラメーターグループにgeneral_log:1を設定する必要があります。
記事最下部のMySQLリファレンスも合わせてご参照ください。

項目 備考
general_log 1 全般ログ有効化

エラーログ

エラーログはデフォルトで有効です。

CloudWatch Logsへの配信設定

RDS作成時/作成後の画面で「追加設定」から「ログのエクスポート」を有効にすることでログの配信が可能です。  

ログの無効化

上記説明と反対の設定を行います。
- オプション/パラメーターグループの各種ログ設定を無効化:0する
- CloudWatch Logsへの配信設定を無効化(チェックボックスOFF)する

注意事項としましては、RDSの変更によりダウンタイムが発生すると思いますので、確実なのは本番と同様の設定である検証環境で時間を計測するのが良さそうです。
ちなみに、新規作成したt3.micro環境で試したところ、「今すぐ適用」で6分程掛かりました(ステータスが「利用可能」になるまで)。そこまで時間は掛からない印象ですが、DBサイズや他の設定との兼ね合いで膨らむ可能性もありますので、油断は禁物です。

参考