MENU
category

[AWS]Auroraの監査ログ、エラーログ、スロークエリログ、全般ログの出力内容は?どれを取得すべき?

Auroraのログを取得するか判断する上で、実際にどんなログが取得できるのかを知りたく調査した。

結論
監査ログは、DBアクセスなどの監査証跡が必要な場合に取得する。
エラーログ、スロークエリログ、全般ログは、障害調査用として取得する。エラーログ、スロークエリログの取得は必須と思われるが、全般ログは任意のレベル感。

  • 監査ログ
    • DBへのアクセスが記録される。取得例は以下。(実際には時刻も記録される。)監査要件がある場合には必須。要件が無い場合は、任意。
    • ログ形式
ログ形式:
<日付、時刻>
<アカウント名>,<インスタンス名>,,<接続元IP>,<コネクションID>,<クエリID>,<オペレーション>,<オブジェクト>,,<リターンコード>

ログの例:
2023-05-29T17:24:30.030+9:00
1234567890123456,test-prod-aurora-instance-1a,TestDB,10.11.1.11,30,0,CONNECT,TestTable,,0
2023-05-29T17:28:00.031+9:00
1234567890123456,test-prod-aurora-instance-1c,TestDB,10.11.1.11,30,0,DISCONNECT,TestTable,,0
  • エラーログ
    • RDSのプロセス稼働状況などの動作が記録される。主に障害調査に利用するため取得を推奨。取得例は以下。
ログの例:
2023-05-29T17:24:30.030+9:00
[Warning] 'NO_AUTO_CREATE_USER' sql mode was not set.

2023-05-29T17:24:50.021+9:00
[Note] TestDB: Started in read only mode

2023-05-29T17:25:23.021+9:00
[Note] IPv6 is available.

2023-05-29T17:26:51.029+9:00
[Note] /rdsdbbin/oscar/bin/mysqld (mysqld 5.7.12-log) starting as process 10233 ...
  • スロークエリログ
    • 遅延が発生した、具体的なクエリの内容とクエリに応答時間などが記録される。性能問題などの発生時における調査に利用するため、取得を推奨。取得例は以下。
ログの例:
# Time: 2023-05-31T05:59:35.910308ZTestDB
# User@Host: trident[trident] @  [192.168.1.59]  Id:   587
# Query_time: 24.293329  Lock_time: 9.261240 Rows_sent: 1  Rows_examined: 954
use TestDB;
SET timestamp=1685512775;
SELECT COUNT(DISTINCT(hid)) FROM testTable WHERE uid = 30;
  • 全般
    • DBの作成やテーブル作成、参照などのクエリが記録される。障害調査に利用する場合があるが、エラーログ、スロークエリログよりは優先度低。
ログの例:
2023-07-10T07:13:14.077839Z 31 Query CREATE DATABASE TestDB
2023-07-10T07:13:24.579116Z 31 Init DB TestDB
2023-07-10T07:13:31.253800Z 31 Query CREATE TABLE users (id INT AUTO_INCREMENT, name TEXT, PRIMARY KEY (id))

上記ログの取得方法についての補足

  • 当サイト上部の画面設定だけでなく、パラメータグループを作成してパラメータ上で、ログを有効化する必要があるため注意。サイト上部の画面は、CloudWatchへの転送のみであり、ログ出力の有効化はパラメータグループの設定となる。
  • 当サイト上部の画面設定を行うと、ログが出力されたタイミングで自動的にCloudWatchロググループも作成されるため、ロググループの作成は不要。ログが主力されるまでは、ロググループが存在しない状態となる。
よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

目次