[アップデート] Amazon CloudWatch Logs の Live tail 機能が AWS CLI からも使えるようになりました

2024.06.06

いわさです。

Amazon CloudWatch Logs には Live tail 機能というものがあり、マネジメントコンソール上でリアルタイムにログ出力状況をウォッチすることが出来ます。

上記機能は当初はマネジメントコンソールからのみ利用出来ていたのですが、実はこの機能は 2023 年 12 月に API 経由での利用がサポートされていました。

この時は API のみがサポートされていたのですが、先日のアップデートで AWS CLI からも利用出来るようになりました。

AWS CLI v2 の tail コマンドとは別

実は AWS CLI v2 では CloudWatch Logs 向けに tail コマンドが以前から提供されています。

従来のものはaws logs tailコマンドです。

tail — AWS CLI 2.16.2 Command Reference

今回使えるようになったものはそれとは別で、AWS CLI v1 (v1.33.0 から)でも利用することが出来る、aws logs start-live-tailコマンドです。

start-live-tail — AWS CLI 2.16.2 Command Reference

同じような機能を備えているのですが、今回実装された Live tail 用のコマンドは一定間隔のポーリングではなくセッションを張って接続し続けていたり、複数のロググループを対象にしたり対話モードが用意されていたりと、いくつか違いがあります。

使い方

試しに Lambda のロググループを対象に AWS CLI から確認してみましょう。
ロググループの ARN を指定します。

aws logs start-live-tailコマンドを実行しました。
セッションは作成され、ログを待っている状態ですね。

Lambda 関数をテスト実行してログを出力します。

CLI 側にリアルタイムにログが出力されました。

終了コマンドは用意されておらず、コマンド自体を中断することでセッションも自動で終了されます。

複数ロググループを指定可能

aws logs tailと異なる点として複数ロググループを指定出来る(最大 10 件まで)という点があります。

複数ロググループを指定しつつ、ログストリームのプレフィックスやフィルターを使うことで分散したログを集約してログテールを実行することが出来るのはこの機能のメリットとして考えられると思います。

モードを指定

デフォルトでは tail コマンドと似ている感じで標準出力にどんどんログが出力されていきます。
aws logs start-live-tailコマンドのmodeオプションを指定することで、標準出力か対話形式でログ出力させるかのモード選択が可能です。

先ほどまでmodeオプションを省略していましたが、こちらはprint-only値を指定した場合の挙動となり、こちらがデフォルトとなります。

もう一つのモードとしてinteractiveが指定可能です。
interactive を指定すると対話メニューが表示され、いくつかのコマンドを入力することで高度な機能を使うことが出来ます。

例えばHキーからハイライトモードを使うことで、ログ内の特定キーワードをハイライトすることが出来ます。

ハイライトキーワードは同時に 5 つまで指定可能です。

あとはスクロールしたり、JSON とプレーンテキストのフォーマットモードを切り替えたりすることが出来ます。

さいごに

本日は Amazon CloudWatch Logs の Live tail 機能が AWS CLI からも使えるようになったので試してみました。

セッション時間に応じた追加料金が発生する機能ではありますが、従来のaws logs tailコマンドよりも高度な機能を使うことが出来ます。是非活用してみてください。