zuntan02のはてなブログ

備忘録的なものです。時々職場の技術者ブログにも転記してますが、メインはこちらで。

【AWS】RDS(MySQL)のログ出力先について

RDS/MySQLのログが見たいと言われたので改めて調べたメモ

■ログの出力先について

DBに設定されているパラメータグループを確認する

log_output = TABLE

上記の場合、general_log/slow_query_logはDBのテーブル(後述)に吐き出されるため、AWSコンソールのRDS「ログとイベント」でログに出ない

※ログの種類
general_log:開発中でSQLを全部吐き出すやつ、普通は無効
slow_query_log:long_query_timeで設定したしきい値でコントロール

※以下はシステムのログなのでファイルに出る(テーブルには入らない)
> error/mysql-error-running.log Tue Jun 16 2020 21:55:00 GMT+0900 0 bytes
> error/mysql-error.log Wed Jun 17 2020 11:40:00 GMT+0900 0 bytes

log_output = FILE

上記の場合、マネージドコンソール上で直近のログが確認可能
[AmazonRDS ダッシュボード]-[該当のデータべース]-[ログとイベント]-[slowquery/mysql-slowquery.log]

スロークエリログをCloudwatchLogsに蓄積するには以下の設定を実施する
[AmazonRDS ダッシュボード]-[該当のデータべース]-[変更]
→[ログのエクスポート] セクションで、CloudWatch Logs に公開するログを選択します。
[続行] を選択し、概要ページで [DB インスタンスの変更]を選択します
→再起動なく反映される模様
→CloudwatchLogsで確認可能となる
> /aws/rds/instance/db名/slowquery

■ログの出力先について:詳細

https://docs.aws.amazon.com/ja_jp/AmazonRDS/latest/UserGuide/USER_LogAccess.Concepts.MySQL.html
より抜粋

log_output option: log_output パラメーターに指定できるオプションは、次のとおりです。
TABLE(デフォルト)– 一般クエリを mysql.general_log テーブルに、スロークエリを mysql.slow_log テーブルに書き込みます。
FILE – 一般クエリログとスロークエリログの両方をファイルシステムに書き込みます。ログファイルは 1 時間ごとにローテーションされます。
NONE – ログ記録を無効にします。