お疲れ様です。
今回は、CloudWatch Logs Insights を使用して、 EKS 上で生成されたコンテナログ解析方法について紹介します。
CloudWatch Logs Insights とは
CloudWatch Logs Insights を使用すると、Amazon CloudWatch Logs のログデータをインタラクティブに検索し分析することが可能になります。クエリを実行することで、運用上の問題に効率的かつ効果的に対応できます。問題が発生した場合は、CloudWatch Logs Insights を使用して、潜在的な原因を特定し、デプロイされた修正を検証することができます。
CloudWatch Logs Insights には、いくつかのシンプルで強力なコマンドを備えた専用のクエリ言語が含まれています。CloudWatch Logs Insights で提供されているサンプルのクエリ、コマンドの説明、クエリの自動補完、およびログフィールドの検出を利用して簡単に使用を開始できます。サンプルクエリは、AWS のサービスの複数のログタイプ向けに用意されています。
引用 AWS公式サイト
前提条件
・EKS のコンテナログが保存されているロググループ が作成されていること。
以前の投稿で作成したロググループ/aws/containerinsights/Cluster_Name/application
を使用してログ解析を実施していきたいと思います。
◆ Amazon EKS で Fluent Bit を使用してコンテナログを CloudWatch Logs に送信する手順
https://cloud5.jp/mk-eks-fluent-bit-cloudwatch_logs/
1. Insight でロググループの表示
①AWSマネジメントコンソール画面にて、コンテナログが保存されているロググループを選択し、「Logs Insight で表示」をクリック
②ロググループ内で、表示したいログストリームを特定します
ログストリーム名はコンテナ名とコンテナIDなどで定義されています。
ログストリームの例
【fluent-bit-mrbcn_amazon-cloudwatch_fluent-bit-eb99ca4a728b7f0eb7d47b6cc069b43d0d52bc56b3a0b3c6725fca6b0e4537d2】
- ログソース: fluent-bit
- ログプロバイダー: amazon-cloudwatch
- コンテナまたはアプリケーション: fluent-bit
- ユニーク(コンテナ)ID: eb99ca4a728b7f0eb7d47b6cc069b43d0d52bc56b3a0b3c6725fca6b0e4537d2
2. クエリの作成
CloudWatch Logs Insights を使用してログを解析するには、クエリを作成する必要があります。
クエリを作成することで、特定の条件に合致するログデータをフィルタリングし、表示することができます。
クエリエディタが表示されたら、クエリを入力します
今回は、2つのログストリームを指定して、最新のログ20件を表示するクエリを入力します
クエリの詳細
fields @timestamp, @message, @logStream
| filter (@logStream = 'ログストリーム1の名前' or @logStream = 'ログストリーム2の名前'
| sort @timestamp asc
| limit 20
■【fields @timestamp, @message】
@timestamp(ログのタイムスタンプ)と@message(ログのメッセージ)のフィールドを選択しクエリの結果に表示されるように設定
■【sort @timestamp asc】
@timestamp フィールドを使用して最新のログデータが先頭に表示されるように設定
■【filter @logStream in (‘ログストリーム1の名前’, ‘ログストリーム2の名前’)】
解析したい対象のログストリーム(コンテナログ)のログがクエリの結果に表示されるように設定
■【limit 20】
結果を最大20件までに制限して,最新の20件のログデータが表示されます。※最大10000まで設定可能
3. クエリ実行
作成したクエリを実行します
・実行結果①
・実行結果②
2つのログストリーム内のログで、クエリに該当したログが表示されています。
・該当したログの詳細
このように、CloudWatch Logs Insights を使用して、クエリを作成し実行することで、容易に時系列でのログ解析が可能です。
まとめ
CloudWatch Logs Insights を使って EKS 上で生成されたコンテナログを解析する方法を紹介しました。
CloudWatch Logs Insights を利用すると、ログデータを簡単に検索し、問題を迅速に特定できます。専用のクエリ言語を使って、シンプルなログ解析が可能です。
関連記事
◆ Amazon EKS で Fluent Bit を使用してコンテナログを CloudWatch Logs に送信する手順
https://cloud5.jp/mk-eks-fluent-bit-cloudwatch_logs/