【AWS】ALBアクセスログをAWS CLIコマンドで一括で取得

AWS全般

最近、インフラ運用でS3バケットに保存されているALBアクセスログを、AWS CLIコマンドで一括で取得する機会がありましたので、備忘としてコマンドを記載したいと思います。

ALBアクセスログをAWS CLIコマンドで一括で取得

ALBアクセスログとは

ALBはロードバランサーのことで、アクセスログを有効にするとS3に格納されます。またファイルの拡張子は.logですが、gzで圧縮された状態でS3に保存されます。S3には日付ごとにフォルダが作成されますが、数分ごとにファイルが分割されて保存されるため、1ファイルずつダウンロードして確認すると時間がかかります。また、数日分のログをまとめて確認するときは、AWS CLIで一括ダウンロードすると便利です。

前提条件

AWS CLIコマンドでS3のログをダウンロードする場合は、コマンドを実行する環境から、S3の対象バケットにアクセスできることが前提です。また、S3のオブジェクトをダウンロードできる権限も必要となります。実行環境はローカルPCでも大丈夫ですが、AWSのCloudShellからも操作可能です。

AWS CLIコマンド

1.下記のコマンドで、取得したい日付のS3側フォルダパスを指定してダウンロードします。

aws s3 cp s3://<フォルダのパス> ./<ローカルのフォルダ名> --recursive --include "*"

2.ダウンロードした複数のファイルを下記コマンドで一括して解凍します。
※gzファイルが格納されたディレクトリで実行する想定

find ./ -type f -name "*.gz" -exec gunzip {} \;

3.下記コマンドで解凍したファイルを1つにまとめます。

cat *.log > alb.log

まとめ

WEB系のシステム運用などではロードバランサーのアクセスログを見る機会が度々あるかと思います。
障害のあった時間帯などのALBログを調査するときなどは、手軽に利用できるコマンドだと思います。

タイトルとURLをコピーしました