Amazon Web Services ブログ
Amazon CloudWatch Logs の Live Tail 機能を発表
次のシナリオを考えてみましょう。
- 複数のアプリケーションサーバに Secure Shell (SSH) 接続しますか? または、ターミナルセッションから
tail -f
コマンドを使用してログファイルの Log Tailing を行い、エラーデバッグ、プロセスが正しく起動したかどうかの検証、アプリケーション/サービス構成の変更の検証、デプロイ/サービスに影響する変更の監視などを行っていますか? - カスタムアプリケーションログの他に、Amazon Virtual Private Cloud (VPC)、Amazon Route 53、AWS Lambda、Amazon Elastic Kubernetes Service (Amazon EKS)、Amazon Elastic Container Service (Amazon ECS) などの 50 以上の AWS サービスから提供されるログを CloudWatch Logs で追跡し、
error
、exception
、その他の関心のあるキーワードでこれらの多様なログにフィルタリングや強調表示を行いたいですか? - CloudWatch からカスタムまたはサードパーティのモニタリングソフトウェアにログを出力し、ログデータを追跡したりトラブルシューティングしたりしますか?
上記の質問に 1つ以上「はい」と答えた場合は、私たちがお手伝いします。アプリケーションログをリアルタイムで視覚的に分析できる機能が豊富にあると、トラブルシューティング、調査、根本原因の分析に役立ちます。Amazon CloudWatch Logs は、受信した CloudWatch ログデータをリアルタイムで表示できる新しいインタラクティブ分析機能である Live Tail をリリースしました。
このブログ記事では、CloudWatch Logs のインタラクティブな Live Tail 機能を使用する方法と、アプリケーションの可用性に関するエラーをデバッグする方法を示します。
さあ、始めましょう。
前提条件
Live Tail セッションを開始するには、AWS Identity and Access Management (IAM) で Admin
ロールを引き受けるか、logs:*
を許可する IAM ポリシーを設定するか、ポリシーステートメント に logs:StartLiveTail
と logs:StopLiveTail
アクションを許可する必要があります。または、AWS マネージドポリシーの CloudWatchLogsReadOnlyAccess を追加することで、AWS コンソールを使用して CloudWatch Logs Live Tail セッションを開始および停止するために必要なアクセス権限を付与することもできます。これにより、必要な権限を調べる必要がなくなります。
IAM ポリシーの例を以下に示します。CloudWatch ログへのアクセスを制御するためのアイデンティティベースの IAM ポリシーの例については、CloudWatch Logs でのアイデンティティベースのポリシー (IAM ポリシー) の使用 を参照してください。
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": [
"logs:StartLiveTail",
"logs:StopLiveTail",
"logs:Get*"
],
"Resource": [
"arn:aws:logs:*:*:*"
]
}
]
}
コンソールから Live Tail を使い始める
Live Tail セッションは、次のいずれかの方法で開始できます。
方法 1
- https://console.aws.amazon.com/cloudwatch/ で CloudWatch コンソールを開きます。
ナビゲーションペインで、ログ > Live tail を選択します。 - ロググループを選択 で、Live Tail セッションでイベントを表示したいロググループを選択します。最大 10 個のロググループを選択できます。
- (オプション)ロググループを 1 つだけ選択した場合、ログイベントを表示するログストリームを 1 つ以上選択して Live Tail セッションをさらに絞り込むことができます。そのためには、ログストリームを選択 で、ドロップダウンリストからログストリームの名前を選択します。または、ログストリームの選択 の 2 番目のボックスを使用してログストリーム名のプレフィックスを入力すると、プレフィックスと一致する名前を持つすべてのログストリームが選択されます。さらに、フィルターパターンを追加することもできます。
方法 2
- https://console.aws.amazon.com/cloudwatch/ で CloudWatch コンソールを開きます。
- ナビゲーションペインで ログ > ロググループ を選択します。
- 1 つまたは複数のロググループを選択します。CloudWatch クロスアカウントオブザーバビリティのモニタリングアカウントの場合、ソースアカウントのロググループとモニタリングアカウントのロググループを選択できます。
- テーリングを開始 ボタンが利用可能になります。
方法 3
- https://console.aws.amazon.com/cloudwatch/ で CloudWatch コンソールを開きます。
- ナビゲーションペインで ログ > ログのインサイト を選択します。
- ロググループを選択 ドロップダウンで、1 つ以上のロググループを選択します。CloudWatch クロスアカウントオブザーバビリティのモニタリングアカウントの場合、ソースアカウントのロググループとモニタリングアカウントのロググループを選択できます。
- テーリングを開始 ボタンが利用可能になります。
機能のウォークスルー
図 1 に示すように、CloudWatch コンソールから Live Tail を起動すると、左側に表示されるフィルターパネル に、複数アカウントのロググループを選択するための必須フィールドと、ログストリームとフィルタリングパターンを選択するためのオプションフィールドが表示されます。
コンソールの右上に表示される XX イベント/秒、XX% 表示済み には、イベントの統計が表示されます。コンソールのイベント表示は、1 秒あたりの特定のイベント数で制御されます。CloudWatch Logs は、目的に合わせて重要なイベントが省略されないように、コンソールにできるだけ多くのログイベントを表示しようとします。ログイベントの量が非常に多い場合、% 表示済み には取り込まれたログイベントの割合が表示されます。フィルターを使用して、関心のあるイベントで絞り込むことができます。
最大レートを超えるイベントはコンソールには表示されません(つまり 「% 表示済み」)が、処理されて CloudWatch Logs に保存されます。また、コンソールの右上には、現在の Live Tail セッションの経過時間が表示されます。
フィルターパターンを指定することで、特定の単語やその他の文字列(ERROR、Exception、Failure など)を含むログイベントのみを表示し、ノイズをカットすることができます。フィルターフィールドは大文字と小文字が区別されます。フィルタパターンを使用してログイベントの用語に一致させる方法の詳細については、フィルターパターンを使用してログイベント内の語句を照合する を参照してください。用語は、単語、正確なフレーズ、数値が利用できます。
さらに、強調表示(Highlight)は最大 5 つの用語を指定することで、図 2 にように各イベントで色分けされたカラーインジケーターを表示できる強力な機能です。たとえば、「ERROR」キーワードを含むイベントをフィルタリングしたとします。しかし、注意が必要なエラータイプは多数あります。たとえば、404 エラータイプを含むフィルタリングされたイベントをすばやく特定したいとしましょう。この場合、強調表示用語として「404」を追加するだけで、各イベントには割り当てられたカラーインジケーターが表示されます。
イベントウィンドウで目的のイベントを確認します。
- イベントの横にある虫眼鏡アイコンを選択すると、イベントの流れが一時停止し、イベントの詳細とその他の関連オプションを表示するための右パネルがポップアップ表示されます。
- 右パネルの トレーリングイベントを表示 をクリックすると、別のブラウザタブでロググループコンソールが起動し、選択したイベントとその周辺のイベントが表示されます。これは、イベントの最初から最後までを確認するのに便利です。
- コンソールの右下隅には、最新のライブイベントにすぐに移動できる スクロールして最新のイベントに移動 ボタンが利用できます。
- コンソールページで操作がない場合、Live Tail セッションは停止しますが、このセッションを再開する ボタンを選択することでセッションを再開することができます。
結論
このブログ記事では、CloudWatch Logs 内からログを追跡して、アプリケーションの可用性に関するエラーをデバッグする方法について学びました。質問やフィードバックがある場合は、AWS Support Case を開いてください。
その他の参考資料
Public documentation
AWS Command Line Interface (CLI) reference
Pricing
Limits
著者について
翻訳はテクニカルアカウントマネージャーの日平が担当しました。原文は こちら です。