Qiita Teams that are logged in
You are not logged in to any team

Log in to Qiita Team
Community
OrganizationAdvent CalendarQiitadon (β)
Service
Qiita JobsQiita ZineQiita Blog
Help us understand the problem. What is going on with this article?

aws-cli + jq でロードバランサー(ELB, ALB)のロギング設定を確認する

More than 3 years have passed since last update.

遭遇した課題

AWSではロードバランサー(ELB, ALB)のアクセスログをS3上に保存することができるわけですが、将来のことをあまり良く考えずに場当たり的に設定した結果、以下のような課題にぶち当たりました。
起動しているロードバランサーが数台であれば、WEB管理画面からポチポチ確認すれば良いのですが、10台超えたあたりからしんどくなってきます。。。

  • そもそもアクセスログ有効になってるのか?
  • どのS3バケットのどんなパスに保存しているのか?

そこで、以下のように aws-cli + jq を使うといくらか苦痛が緩和されました。

手順

ELB の場合

実行したコマンド

$ aws elb describe-load-balancers | jq -r '.LoadBalancerDescriptions[].LoadBalancerName' > /tmp/elb-names.txt

$ cat /tmp/elb-names.txt | while read NAME \
do \
echo $NAME \
aws elb describe-load-balancer-attributes --load-balancer-name=$NAME \
| jq '.LoadBalancerAttributes.AccessLog | "s3://\(.S3BucketName)/\(.S3BucketPrefix)"' \
echo \
done

出力例

# ロギング設定なし
elb-hogehoge1
"s3://null/null"

elb-hogehoge2
"s3://bucket2/prefix"

elb-hogehoge3
"s3://bucket2/prefix"

ALB の場合

実行したコマンド

$ aws elbv2 describe-load-balancers | jq -r '.LoadBalancers[].LoadBalancerArn' > /tmp/alb-arns.txt

$ cat /tmp/alb-arns.txt | while read ARN \
do \
echo $ARN | cut -d'/' -f3 \
aws elbv2 describe-load-balancer-attributes --load-balancer-arn $ARN \
| jq '"s3://\(.Attributes[] | select(.Key=="access_logs.s3.bucket").Value)/\(.Attributes[] | select(.Key=="access_logs.s3.prefix").Value)"' \
echo \
done

出力例

# ロギング設定なし
alb-hogehoge1
"s3:///"

alb-hogehoge2
"s3://bucket2/prefix"

alb-hogehoge3
"s3://bucket3/prefix"
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away