こんにちは。AWS CLIが好きな福島です。
今回は、私が勘違いしていたことをブログに記載いたします。
はじめに
結論をお伝えすると、RDS(Aurora) for MySQLは、以下のログをCloudWatchLogsに出力することができますが、 「④エラーログ」以外は、RDS(Aurora) for MysSQLの「ログのエクスポート」にチェックを付けるだけでは、CloudWatchLogsに出力されないログがあります。
◆ログの種類
①監査ログ
②全般ログ
③スロークエリログ
④エラーログ
RDS(Aurora) for MySQLの「ログのエクスポート」とは、以下のことを指しています。
参考
Amazon RDS または Aurora for MySQL のログを CloudWatch に公開
ログの出力方法
CloudWatchLogsにログを出力する前提として、RDSがそれぞれのログを出力する設定になっていなければ、なりません。
ということで、ここから、「④エラーログ」以外のログ出力方法を記載いたします。
(基本的にパラメーターグループの値を変更します。)
※エラーログは、デフォルトでログを出力する設定になっているため、「ログのエクスポート」にチェックを付けるだけで、CloudWatchLogsに出力できるということです。
①監査ログ
監査ログを出力するよう、以下の設定を行います。
RDS for MySQLの場合
オプショングループを使い、監査ログを出力するよう設定を行います。
追加するオプションは、「MARIADB_AUDIT_PLUGIN」となり、設定できるパラメーターは、以下の通りです。
- SERVER_AUDIT_FILE_ROTATE_SIZE
このバイト数のサイズに達するとファイルがローテーションします。 - SERVER_AUDIT_FILE_ROTATIONS
保存するログローテーション数を指定します。 - SERVER_AUDIT_EVENTS
ログに記録するアクティビティのタイプを指定します。 - SERVER_AUDIT_INCL_USERS
指定されたユーザーからのアクティビティのみを含めます。 - SERVER_AUDIT_EXCL_USERS
指定されたユーザーからのアクティビティを除外します。 - SERVER_AUDIT_LOGGING
監査ログのオン・オフを設定します。 - SERVER_AUDIT_QUERY_LOG_LIMIT
レコードのクエリ文字列の長さに対する制限。
詳細は、以下をご確認ください。
MariaDB 監査プラグインのサポート - Amazon Relational Database Service
Aurora for MySQLの場合
監査ログを出力するよう、以下の設定を行います。
server_audit_logging:1
また、任意で以下のパラメーターを設定することができます。
server_audit_events
記録するイベントのコンマ区切りリストが含まれています。server_audit_excl_users
アクティビティを記録しないユーザーを指定します。
また、ユーザーが複数いる場合、カンマ区切りで指定します。server_audit_incl_users
アクティビティを記録するユーザーを指定します。
また、ユーザーが複数いる場合、カンマ区切りで指定します。
※このパラメーターの設定の方がserver_audit_excl_usersより優先されます。
上記パラメーターで設定できる値は、以下をご確認ください。
Amazon Aurora MySQL DB クラスターでの高度な監査の使用 - Amazon Aurora
②全般ログ
全般ログを出力するよう、以下の通り、設定を変更します。
general_log:1
ポイント:log_outputをFILEに変更しておく必要があります。
※RDS for MySQLは、log_outputの設定がデフォルト「TABLE」となっております。
③スロークエリログ
スロークエリログを出力するよう、以下の通り、設定を変更します。
slow_query_log:1
ポイント:log_outputをFILEに変更しておく必要があります。
※RDS for MySQLは、log_outputの設定がデフォルト「TABLE」となっております。
終わりに
今回は、RDS(Aurora) for MySQLのログをCloudWatchLogsに出力する方法をご紹介しました。
どなたかのお役に立てれば幸いです。