🥶

Athena ALBログ消失事件

2024/07/04に公開

とある日

https://docs.aws.amazon.com/ja_jp/athena/latest/ug/application-load-balancer-logs.html
ALBのログってAthenaでSQL使って検索できるらしい

簡単そうだからやっちゃお☆ミ

事件発生

現場のKさん 「Amazon Athenaで ALBログを見ようとしたら、2024/5/21以降のデータが全くなかったw」

なんやて・・・

ほんまや・・・最新引っ張ってきても2024/5/20になっとる・・・

調査開始

ログは出力されていた

ALBのログが格納されるS3バケットを確認しに行ったら、いつも通りログは出ている

パーティション疑惑

https://docs.aws.amazon.com/ja_jp/athena/latest/ug/partitions.html
パーティションという機能があって、フォルダ名をWHERE句に使用できるようにする機能がある

もしやそのパーティションのロードができていないのでは・・・?

パーティションをロード ポチッ

変わらず、効果全くなし

変なログは検索できる

レコード全行真っ白だがなんか検索はできる

ナニコレ・・・

もしかしてログのフォーマット変わったんか?

DDLを確認する

  'input.regex'='([^ ]*) ([^ ]*) ([^ ]*) ([^ ]*):([0-9]*) ([^ ]*)[:-]([0-9]*) ([-.0-9]*) ([-.0-9]*) ([-.0-9]*) (|[-0-9]*) (-|[-0-9]*) ([-0-9]*) ([-0-9]*) \"([^ ]*) (.*) (- |[^ ]*)\" \"([^\"]*)\" ([A-Z0-9-_]+) ([A-Za-z0-9.-]*) ([^ ]*) \"([^\"]*)\" \"([^\"]*)\" \"([^\"]*)\" ([-.0-9]*) ([^ ]*) \"([^\"]*)\" \"([^\"]*)\" \"([^ ]*)\" \"([^s]+?)\" \"([^s]+)\" \"([^ ]*)\" \"([^ ]*)\"') 

公式と比較してみる

https://docs.aws.amazon.com/ja_jp/athena/latest/ug/application-load-balancer-logs.html

'input.regex' = '([^ ]*) ([^ ]*) ([^ ]*) ([^ ]*):([0-9]*) ([^ ]*)[:-]([0-9]*) ([-.0-9]*) ([-.0-9]*) ([-.0-9]*) (|[-0-9]*) (-|[-0-9]*) ([-0-9]*) ([-0-9]*) \"([^ ]*) (.*) (- |[^ ]*)\" \"([^\"]*)\" ([A-Z0-9-_]+) ([A-Za-z0-9.-]*) ([^ ]*) \"([^\"]*)\" \"([^\"]*)\" \"([^\"]*)\" ([-.0-9]*) ([^ ]*) \"([^\"]*)\" \"([^\"]*)\" \"([^ ]*)\" \"([^\s]+?)\" \"([^\s]+)\" \"([^ ]*)\" \"([^ ]*)\" ?([^ ]*)?( .*)?')

みんな大好き神ツールWinMergeで比較してみる

はあ〜やりやがったな公式さんよぉ!!

真実はいつも一つ

というわけで、いつの間にか出力されるログのフォーマットが変わっていたのが原因でした。

急にAthenaでALBのログが見れなくなったら公式ドキュメントのフォーマットを再確認してみましょう。

SMARTCAMP Engineer Blog

Discussion