解決したいこと
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







