CloudWatch LogsをCLIで確認する方法

CloudWatchのログを確認する際、ブラウザのUIだと思うように操作できないと感じたため、CLIからCloudWath Logsを確認する方法を調べました。

aws logsコマンド

aws logs filter-log-eventsというコマンドを使います。

aws logs filter-log-events \
    --log-group-name '' \
    --start-time '' \
    --end-time '' \
    --filter-pattern 'mogumogu' \
    --query 'events[]' \
    --output json | awk '{ $1 = ""; print }'

–outputはtext形式も選べます。json形式ならjqなどでフィルタリングしやすいという利点があるので、用途に応じて調整します。

aws logsコマンドを使ったシェルスクリプト

時間の指定が大変なので、シェルスクリプトなどで自動化すると捗ると思います。

#!bih/sh
start="2023-07-18T19:47:00+0900"
end="2023-07-18T19:48:00+0900"
start_time=$(expr `date -j -f %FT%T%z ${start} +%s` \* 1000)
end_time=$(expr `date -j -f %FT%T%z ${end} +%s` \* 1000)
log_group_name='hogehoge'
aws logs filter-log-events \
  --log-group-name ${log_group_name} \
  --start-time ${start_name} \
  --end-time ${end_time} \
  --filter-pattern 'mogumogu' \
  --query 'events[]' \
  --output json | awk '{ $1 = ""; print }'