ELBのログに不明なフィールド

表題の件について。

■ 環境

  • AWS Application Load Balancer

■ ALB

Application Load Balancerを使用しログをS3に出力させているのだが、そのログの解析処理の中で2018/03/02もしくは2018/03/03分のログから一部で解析に失敗している箇所を発見した。なぜだろう?とデバッグしていくと、どうやら今まではなかったフィールドがログに追加されていることが原因であるようであった。

※よくよくログファイルを確認したところ、3/1分からであった。

Application Load Balancer のアクセスログ
https://docs.aws.amazon.com/ja_jp/elasticloadbalancing/latest/application/load-balancer-access-logs.html

上記のマニュアルによると、”アクセスログのエントリ“には20のフィールドが出力されるようになっている。しかし前述の日付あたりから21フィールドが出力されているようであった。21番目のフィールドに『0』、ものによっては『』が出力されている。件の解析処理の中では20フィールドの場合はELBと判別しELB用の処理を、それ以外の時はCloudFrontと判定しCloudFront用の処理を行うようになっていた為、ELBであるのにCloudFront用の処理に入っていた為に失敗しているようであった。判定処理はフィールド数だけではないのだが、CloudFront用の処理に入ってしまっていた。判定処理が甘いようである。ちなみにCloudFrontのログは26フィールドである。

判定処理を20フィールドもしくは21フィールドに変更し正しい結果を得られるようになった。

以上。

コメントを残す

メールアドレスが公開されることはありません。

CAPTCHA