大したことじゃないのですが、ALBの内側にあるアプリケーションに対して特定のpathでアクセスしてる件数を調べてほしいといわれたのでその時の手順をメモ代わりに残します。
【概要】
インスタンスが1台ならそいつのWEBサーバが吐いてるアクセスログを見ればいいんですが、複数台インスタンスを置いてALBでロードバランシングしているケースではすべてのインスタンスを見に行くのは手間です。
そのため、起点となるALBのアクセスログから必要な情報を読み取ります。
【前提】
Application Load Balancer のアクセスログを有効にするを設定済みとします。
【手順】
//5分ごとにログが出ているので、必要な範囲のファイルをローカルにDL
aws s3 cp s3://test-logs/alb/AWSLogs/111222333444/elasticloadbalancing/ap-northeast-1/2023/08/02/ . --recursive
//grepのhit数確認 zgrepだとgzを解凍せずにgrepできる。
zgrep -c "/the/string/you/want/to/find" ./*
./~.log.gz:10 ←ファイル別にHIT数を出力できる。(ex:10件)
./~.log.gz:27 (ex:27件)
...
【特定のIPからアクセスがあったか確認】
find ./ -type f -name "*.gz" -print0 | xargs -0 zgrep -nHc "00.000.000.00"
./03/23/50/942949530732_waflogs_ap-northeast-1_xxx-xxx-webacl_20240303T2350Z_d9966045.log.gz:113
./04/09/50/942949530732_waflogs_ap-northeast-1_xxx-xxx-webacl_20240304T0950Z_8f440fad.log.gz:2
【あとがき】
コンソールの機能で~とか監視システムで~とか難しく考えてはいけない。
最近記事書いてなかったからリハビリ的な。
毎回重い記事ばっか書いてるからそういうことになる。