[小ネタ] マルチライン SQL 実行時の CloudWatch Logs での RDS 監査ログの見え方

RDS は DB エンジンが対応している場合、DB 上の監査イベントを CloudWatch Logs に出力することができます。 先日、マルチラインな SQL 実行時に CloudWatch Logs でどのように見えるのかを確認する機会がありましたので共有します。
2020.03.31

こんにちは、岩城です。

RDS は DB エンジンが対応している場合、DB 上の監査イベントを CloudWatch Logs に出力することができます。

先日、マルチラインな SQL 実行時に CloudWatch Logs でどのように見えるのかを確認する機会がありましたので共有します。

やってみた

本エントリで確認する DB エンジンを以下に記します。Oracle と Microsoft SQL Server は除いています。

  • Aurora MySQL
  • Aurora PostgreSQL
  • MySQL
  • PostgreSQL
  • MariaDB

これらの DB にログインして、以下のマルチライン SQL を実行して確認しました。

SELECT
name,
text
FROM
testtable;

結論から言うと、PostgreSQL 系はマルチライン SQL で実行したログがそのまま記録されており、MariaDB 含む MySQL 系は シングルラインで記録されていました。

以降に CloudWatch Logs のキャプチャを貼っておきます。文字が小さくて分かり辛く申し訳ありませんが、マルチラインか否かは確認いただけると思います。

Aurora MySQL

Aurora PostgreSQL

MySQL

PostgreSQL

MariaDB

おわりに

DB エンジンによって CloudWatch Logs に出力されるログの型式が変わることを知りました。

CloudWatch Logs のログを取り込んでゴニョゴニョする場合、シングルラインを想定しているとハマりそうだと思いました。

本エントリがどなたかのお役に立てれば幸いです。