はじめに
先日、Amazon CloudWatch Logs Live Tailがリリースされました。
今までCloudWatch Logsのログをリアルタイムで見る場合にはマネジメントコンソールで手動でリロードを行ったり、別途ツールを作成する必要がありましたが、ログをほぼリアルタイムに追うことができるようになりました。
便利そうな機能なので試用してみたいと思います。
コストについては料金表を参照ください。
準備
過去のエントリーを参考に、ロググループ、ログストリームを作成しましょう。
ランダムにログを書き込むスクリプト(put-log-events.sh)を用意します。
#!/bin/sh NUM=$(($RANDOM%2)) if [ ${NUM} -eq 0 ]; then LOGLEVEL="INFO" else LOGLEVEL="ERROR" fi echo ${LOGLEVEL} cat << EOF > event.json [ { "timestamp": `date +%s%3N`, "message": "{\"time\": \"`date '+%Y-%m-%d %H:%M:%S'`\", \"level\": \"${LOGLEVEL}\", \"message\": \"Test\"}" } ] EOF aws logs put-log-events \ --log-group-name /test-log-group \ --log-stream-name test-stream \ --log-events file://event.json 1> /dev/null
スクリプトを実行して、CloudWatch Logsにログイベントが投入されたことを確認して、ログを継続投入します。
$ while true;do bash ./put-log-events.sh;sleep 5;done
使ってみる
- 利用開始
CloudWatchコンソールのLive Tailを選択することで利用開始できます。
個人的には、リアルタイムに見たいロググループや、ログストリームまで遷移した状態で、「テーリングを開始」ボタンを押下したほうが自動的に必要な情報が入力されるためわかりやすいと思います。
- Live Tail
Live Tail画面では、自動的にログイベント待機中となり、ログをほぼリアルタイムに追うことができます。
- (オプション)強調表示
上部のボックスに強調表示したい文字を記載すると、ログイベントの左側にマークが付きます。
- (オプション)フィルター
フィルターパターンに文字をを入力すると表示から除外することもできます。
たとえば、INFOが不要な場合は(-INFO)と入力します。
あとがき
CloudWatch Logsに出力したログを簡単に、かつほぼリアルタイムに追うことができるようになりました。システム調査の際に有効活用したいですね。