CloudWatch Logs Insightsでログを探す

CloudWatch Logs Insightsでログを探す:

コンテナベースの Web アプリケーションでは標準出力にログを吐かせることになる。例えば ECS + Fargate なら、標準出力が自動的に CloudWatch Logs へと送信されて蓄積されるので、ほぼリアルタイムに確認できるし、後でまとまったデータから統計を取ることもできる。


リアルタイムなログ監視

じゃあどうやって tail -f してログ見るの?ってなると思うけど、CloudWatch Logs の場合、AWS Console からだと見にくいので、cw コマンドみたいな外部ツールで見ると便利。

$ cw tail -f /ecs/my-application 


ある期間から特定のログを探したい

「○月○日 XX時XX分頃にエラーでてアイテムもらえなかったらしいんだけど、調べてくれない?」 みたいな、障害調査だったりサポート対応するときに CloudWatch Logs Insights はすごく便利。

ECS + Fargate の場合、CloudWatch Logs には下記 3 カラムが出力される。

  • @message
  • @timestamp
  • @logStream


正規表現でフィルタリング

アプリケーションで出力しているものは @message に含まれる。例えばエラーログを探したいなら filter コマンドと正規表現を使う。

fields @timestamp, @message 
| filter @message like /(?i)error/ 
@message 内の文字列に対して、like /文字列/ と記述することで正規表現が使用できる。(?i) の部分は「埋め込みフラグ表現」と呼ばれるもので、大文字小文字を区別しない指定。


特定のログレベルから探す

ログ出力時に info:, debug:, warn:, error:, query: みたいな、特定のワードで始まるなら、以下のような指定ができる。

fields @timestamp, @message 
| filter @message like /debug:|query:/ 
これで debug ログと query ログのみが対象となる。

 


参考

コメント

このブログの人気の投稿

投稿時間:2021-06-17 22:08:45 RSSフィード2021-06-17 22:00 分まとめ(2089件)

投稿時間:2021-06-20 02:06:12 RSSフィード2021-06-20 02:00 分まとめ(3871件)

投稿時間:2021-06-17 05:05:34 RSSフィード2021-06-17 05:00 分まとめ(1274件)