AWS RDSについてのメモ


log

基本的にデフォルトで出力されるのはエラーログだけ。
スロークエリや一般ログを出力したいのであれば要設定変更
デフォルトではlogのアウトプットはテーブル。ダウンロードしたければlog_output=fileにする
インスタンス停止中はログは全てのログ(error,slow,多分generalも)が見れない

エラーログ

公式

まずmysql-error.logに書き込まれる。
5分間隔でmysql-error-running.logにflushされる。mysql-error.logは空になる。
mysql-error-running.logは1時間毎にローテートされる。
その後24時間経過にその時間のmysql-error-running.logは上書きされる。
ログは24時間でなくなってしまうため、それ以上保管したい場合は、awscliなどで定期的にダウンロードする

確認
aws rds describe-db-log-files --db-instance-identifier $ID

ダウンロード
aws rds download-db-log-file-portion \
--db-instance-identifier $ID\
--starting-token 0 \
--output text \
--log-file-name error/mysql-error-running.log.0 > errorlog.txt

slowquery

下記を設定する
slow_query_log:1
long_query_time:2 #スロークエリに出力する秒数。デフォルト10秒。個人的には大体2秒ぐらいにしておくといいかなと思う。クエリ終了時に書き込まれる。

バイナリログ

他のログの様にawscliでは取得できない。
mysqlbinlogを使用して取得する。