解決したいこと
RDS for MySQL の全般ログとスロークエリログを CloudWatch Logs に出力したい。
パラメータの変更が必要なのは分かったが、変更を反映するために再起動が必要かを知りたい。
調べたこと
全般ログ(general_log)とスロークエリログ(slow_query_log)のいずれも適用タイプはDynamic
のため再起動は必要ありません。log_output
については後述します。
やってみた
- RDS パラメータグループで全般ログとスロークエリログのパラメータ値を変更後に再起動が起きないことを確認
- CloudWatch Logs にログが出力されたことを確認
1. RDS のログの出力設定を確認
2. パラメータグループを作成
デフォルトのパラメータグループは変更できないため、カスタムパラメータグループを作成します。
3. パラメータグループをデフォルトから変更
上記 2. で作成したカスタムパラメータグループを選択します。
4. パラメータを以下の値に変更
general_log
とslow_query_log
の値を1
に変更します。
あわせて、log_output
の値をTABLE
からFILE
に変更する必要もあります。[2]
ログタイプ | パラメータ名 | パラメータ値 |
---|---|---|
全般ログ | general_log | 1 |
スロークエリログ | slow_query_log | 1 |
ログ出力 | log_output | FILE |
5. 再起動は起きませんでした
6. CloudWatch Logs にログが出力されたことを確認
general
とslowquery
それぞれロググループが作成され、ログが出力されました。
ロググループは自動的に作成されるため、あらかじめ作成する必要はありません。
参考資料
[1] MySQL に対する MariaDB 監査プラグインのサポート - Amazon Relational Database Service
[2] Amazon CloudWatch Logs への MySQL ログの発行 - Amazon Relational Database Service
[3] MySQL を実行している Amazon RDS DB インスタンスのログを有効にしてモニタリングする | AWS re:Post