AWS の Lambda や ECS の需要が増えたことにより、CloudWatch Logs の需要も増えてると思う。
でも AWS コンソールから CloudWatch Logs はとても見にくい。そこで awslogs を使ってる人が多いと思う。
🌋 awslogs の問題点
Python2系への依存、これが非常にだるい。自分の場合 Python は pyenv 経由で 3 系をデフォルトで使ってるし。
$ brew info awslogs
awslogs: stable 0.10 (bottled), HEAD
Simple command-line tool to read AWS CloudWatch logs
==> Dependencies
Required: python@2 ✔
🐾 Golang 実装の cw
$ brew info cw
lucagrulla/cw/cw: stable 1.7.2
The best way to tail AWS Cloudwatch Logs from your terminal
バイナリ配布が得意な Golang 実装なので依存関係なし。最近(2018年10月下旬)は Windows 対応までしてくれた。
📝 使い方
Mac の場合、Homebrew からインストールできる。
$ brew tap lucagrulla/cw
$ brew install cw
-p
で ~/.aws/credentials
のプロファイルを指定可能。tail -f
でリアルタイム監視できる。その後ろの第1引数で ロググループ名
、第2引数で ログストリーム名
を指定。第3引数で日時指定を UTC で指定できる。
$ cw -p <my_aws_profile> tail -f <my-log-group> <my-log-stream-prefix> <start-time>
$ cw -p jnst tail -f /ecs/my-server ecs/my-server/**** 2018-10-01T08:10:10
一番シンプルな使い方はデフォルトのプロファイルを使い、ロググループ名だけを指定するやり方。
$ cw tail -f /ecs/my-server