【RDS(Aurora) for MySQL】ログをCloudWatchLogsに出力している気になっていた件

記事タイトルとURLをコピーする

こんにちは。AWS CLIが好きな福島です。

今回は、私が勘違いしていたことをブログに記載いたします。

はじめに

結論をお伝えすると、RDS(Aurora) for MySQLは、以下のログをCloudWatchLogsに出力することができますが、 「④エラーログ」以外は、RDS(Aurora) for MysSQLの「ログのエクスポート」にチェックを付けるだけでは、CloudWatchLogsに出力されないログがあります。

◆ログの種類
①監査ログ
②全般ログ
③スロークエリログ
④エラーログ

RDS(Aurora) for MySQLの「ログのエクスポート」とは、以下のことを指しています。

f:id:swx-fukushima:20210711150304p:plain

参考

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に出力する方法をご紹介しました。
どなたかのお役に立てれば幸いです。

福島 和弥 (記事一覧)

SRE3課

2019/10 入社

AWS CLIが好きです。