長生村本郷Engineers'Blog

千葉県長生村本郷育ちのエンジニアが書いているブログ

S3 に5分毎に出力される AWS LB ログファイルを時間帯を指定してまとめてダウンロード

概要

AWS で LB のログを S3 に保存設定をしている場合に、 インシデントがあった時間帯のログがまとめて欲しいという時に awscli でまとめてログ取得しています。

その時の手順を備忘録としてまとめました。

事前準備

  • awscli インストール

本件の実行環境は以下になります。

macOS%$ sw_vers
ProductName:    Mac OS X
ProductVersion: 10.12.6
BuildVersion:   16G1036

macOS%$ aws --version
aws-cli/1.15.50 Python/3.7.0 Darwin/16.7.0 botocore/1.10.49

ログファイルダウンロード

例) 2018年9月12日 14時台の ALB ログファイルをダウンロード

// 2018年9月12日 14時台のログファイルをダウンロード
macOS%$ aws s3 --profile <profile> cp s3://<log bucket name>/<lb name>/AWSLogs/123456789012/elasticloadbalancing/ap-northeast-1/2018/09/12/ . --recursive --exclude "*" --include "*20180912T05*"

// ログファイル解凍
gunzip *.gz

// log を1ファイルにまとめ
cat *.log > all.log

// HTTP コードが 50x のものを 50x.log にまとめる
awk '{if($9 ~ 50) print $13,$14,$15}' all.log > 50x.log

--profile <profile>aws configure --profile <profile> で設定した場合の設定です。
default を利用する場合は --profile <profile> の指定は不要です。

以上です。