Tagbangers Blog

CloudWatch Logs のロググループ名を awscli で取得する

今回は小ネタです。

Elastic Beanstalk の検証作業をする中で、不要な Log groups が大量にできてしまったため、整理していました。

cli で消したくなったので、aws logs delete-log-group で削除しようとしたのですが、--log-group-name を指定するためにロググループ名を特定する必要があります。

logs のオプションを確認するも、ロググループ名の一覧の確認がなさそうだったので?

 (あればそっと教えていただきたいです...)

describe-log-groupsjq を使用して確認しました。

コマンド

less に渡してざっと眺めてみて、 --log-group-name-prefix で絞ってみました。

$ aws logs describe-log-groups | jq '.logGroups[] | .logGroupName' -r | less
$ aws logs describe-log-groups --log-group-name-prefix /aws/elasticbeanstalk/ | jq '.logGroups[] | .logGroupName' -r | less

削除したいロググループ名を確認できました。

$ aws logs describe-log-groups --log-group-name-prefix /aws/elasticbeanstalk/test- | jq '.logGroups[] | .logGroupName' -r
/aws/elasticbeanstalk/test-20200910-01/var/log/eb-engine.log
/aws/elasticbeanstalk/test-20200910-01/var/log/eb-hooks.log
/aws/elasticbeanstalk/test-20200910-01/var/log/nginx/access.log
/aws/elasticbeanstalk/test-20200910-01/var/log/nginx/error.log
/aws/elasticbeanstalk/test-20200910-01/var/log/web.stdout.log

これで cli からも削除できそうです。

$ aws logs delete-log-group --log-group-name