環境
Windows11(23H2)
aws-cli/2.15.58 Python/3.11.8 Windows/10 exe/AMD64
準備
- jqのインストール
以下を参考にインストール実施
https://blog.serverworks.co.jp/2021/12/20/180000_2
- jq動作確認
参考サイトでバージョン確認しているが物足りないと思った(というかバージョン確認できたのにそのあといろいろエラー出て全然動いてくれなかった)ので以下を実施
CloudWatchLogsのロググループ一覧取得
また自身の環境に合わせて以下は置換してください
${profilename}:プロファイル名
aws logs describe-log-groups --profile ${profilename} --query "logGroups[].{logGroupName:logGroupName,storedBytes:storedBytes,creationTime:creationTime}"| jq -r ".[]|[.logGroupName,.storedBytes,.creationTime] | @csv"
出力例
"/aws/lambda/test_lambda",11096,1626334018940
"/aws/lambda/dynamodb_catalog",20915,1670830215315
"/aws/rds/instance/database-acs/postgresql",4184,1654505982681
"/vpclog",0,1717463269522
AWS Cloudwatch Logsの内容をCSVで表示、ダウンロード
- 表示してみる
動作確認同様以下は置換してください
${profilename}:プロファイル名
${loggroupname}:ロググループ名
${logstreamname}:ログストリーム名
aws logs get-log-events --profile ${profilename} --log-group-name ${loggroupname} --log-stream-name ${logstreamname} --start-from-head --query "events[].{timestamp:timestamp,message:message}"| jq -r ".[]|[.timestamp,.message] | @csv"
出力例
1654507128000,"2022-06-06 09:18:48 UTC::@:[10545]:LOG: redo starts at 0/C000178"
1654507128000,"2022-06-06 09:18:48 UTC::@:[10545]:LOG: invalid record length at 0/1001BA38: wanted 24, got 0"
1654507128000,"2022-06-06 09:18:48 UTC::@:[10545]:LOG: redo done at 0/1001BA00"
1654507128000,"2022-06-06 09:18:48 UTC::@:[10545]:LOG: checkpoint starting: end-of-recovery immediate"
- ダウンロード(というか出力先指定して出力するだけ)
aws logs get-log-events --profile ${profilename} --log-group-name ${loggroupname} --log-stream-name ${logstreamname} --start-from-head --query "events[].{timestamp:timestamp,message:message}"| jq -r ".[]|[.timestamp,.message] | @csv" > 出力先パス
戻り値なし
指定した出力先確認してファイルが出力されていればOK
最後に
タイムスタンプが日本時間に直せてないからそこはエクセルとかでどうにかするか、ほかの方法検討したい。
いい方法知ってたら教えてください!