View a markdown version of this page

Firelens ログルーターを使用して Amazon ECS 用のカスタムログパーサーを作成する - AWS 規範ガイダンス

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

Firelens ログルーターを使用して Amazon ECS 用のカスタムログパーサーを作成する

Amazon Web Services、Varun Sharma

概要

Firelensは、Amazon Elastic Container Service (Amazon ECS) と AWS Fargate 用のログルーターです。Firelens を使用して、Amazon ECS から Amazon CloudWatch やその他の転送先 (SplunkSumo Logic など) にコンテナログをルーティングできます。Firelens は Fluentd または Fluent Bit をロギングエージェントとして使用し、これにより Amazon ECS タスク定義パラメータを使用してログをルーティングできます。

ログをソースレベルで解析することを選択することで、ロギングデータを分析し、クエリを実行して、運用上の問題に効率的かつ効果的に対応できます。アプリケーションが異なればロギングパターンも異なるため、ログを構造化して最終転送先での検索を容易にするカスタムパーサーを使用する必要があります。

このパターンでは、カスタムパーサーを備えた Firelens ログルーターを使用して、Amazon ECS で実行されているサンプル Spring Boot アプリケーションから CloudWatch にログをプッシュします。その後、Amazon CloudWatch Logs Insights を使用して、カスタムパーサーによって生成されたカスタムフィールドに基づいてログをフィルタリングできます。

前提条件と制限事項

前提条件

  • アクティブな Amazon Web Services (AWS)アカウント。

  • ユーザーのローカルマシンにインストールされ、構成された AWS コマンドラインインターフェイス (AWS CLI)。

  • コンピュータにインストールされて構成されている Docker。

  • Amazon Elastic Container Registry (Amazon ECR) にある既存の Spring Boot ベースのコンテナ化アプリケーション。 

アーキテクチャ

Firelens ログルーターを使用して、Amazon ECS で実行されているアプリケーションから CloudWatch にログをプッシュします。

テクノロジースタック

  • CloudWatch

  • Amazon ECR

  • Amazon ECS

  • Fargate

  • Docker

  • Fluent Bit

ツール

  • Amazon ECR – Amazon Elastic Container Registry (Amazon ECR) は、セキュリティ、スケーラビリティ、信頼性を備えた AWS マネージドコンテナイメージレジストリサービスです。

  • Amazon ECS – Amazon Elastic Container Service (Amazon ECS) は、クラスターでコンテナの実行、停止、管理を簡単に行うことのできる、高度にスケーラブルで高速なコンテナ管理サービスです。

  • Identity and Access Management (IAM) - IAM は、AWS サービスへのアクセスをセキュアに制御するためのウェブサービスです。

  • CLI – AWS コマンドラインインターフェイス (AWS CLI) は、オープンソースのツールであり、コマンドラインシェルのコマンドを使用して AWS サービスとやり取りすることができます。

  • Docker — Docker は、アプリケーションの開発、出荷、実行のためのオープンプラットフォームです。

Code

このパターンには以下のファイルが添付されています。

  • customFluentBit.zip – カスタムの解析と構成を追加するためのファイルが含まれています。

  • firelens_policy.json – IAM ポリシーを作成するためのポリシードキュメントが含まれます。

  • Task.json – Amazon ECS のサンプルタスク定義が含まれています。

エピック

タスク説明必要なスキル

Amazon ECR リポジトリを作成します。

AWS マネジメントコンソールにサインインし、Amazon ECR コンソールを開いて、fluentbit_custom というリポジトリを作成します。

これに関する詳細については、Amazon ECR のドキュメントの「リポジトリを作成する」を参照してください。

システム管理者、開発者

customFluentBit.zip パッケージを解凍する。

 

  1. customFluentBit.zip パッケージ (添付) をローカルマシンにダウンロードします。 

  2. customFluentBit ディレクトリに移動して、次のコマンドを実行します: unzip -d customFluentBit.zip

  3. このディレクトリには、カスタムの解析と構成を追加するのに必要な以下のファイルが含まれています。

    • parsers/springboot_parser.conf – パーサーディレクティブが含まれ、カスタムパーサーの正規表現 (regex) パターンを定義します。特定のパーサーに正規表現パターンを追加できます。

    •  conf/parse_springboot.conf – フィルターとサービスディレクティブが含まれます。

    • Dockerkerfile

カスタム Docker イメージを作成します。

  1. ディレクトリを customFluentBit に変更します。

  2. Amazon ECR コンソールを開き、fluentbit_custom リポジトリを選択してから [プッシュコマンドを表示] を選択します。 

  3. プロジェクトをアップロードします。 

  4. アップロードが完了したら、ビルドの URL をコピーします。この URL は Amazon ECS でコンテナを作成する際に必要です。

詳細については、Amazon ECR のドキュメントの「Docker イメージの作成」を参照してください。 

システム管理者、開発者
タスク説明必要なスキル

Amazon ECS クラスターを作成します。

Amazon ECS クラスターを作成するには、Amazon ECS ドキュメントの「クラスターの作成」の「ネットワーク専用テンプレート」セクションの指示に従います。

注記

Amazon ECS クラスター用の新しい仮想プライベートクラウド (VPC) を作成する場合は、必ず、[VPC の作成] を選択してください。

システム管理者、開発者
タスク説明必要なスキル

Amazon ECS タスク実行 IAM ロールを設定します。

AmazonECSTaskExecutionRolePolicy マネージドポリシーを使用して Amazon ECS タスク実行 IAM ロールを作成します。これに関する詳細については、Amazon ECS デベロッパーガイド の 「Amazon ECS タスク実行 IAM ロール」 を参照してください。

注記

IAM ロールの Amazon リソースネーム (ARN) は必ず記録してください。

システム管理者、開発者

IAM ポリシーを Amazon ECS タスク実行 IAM ロールに添付する。

  1. firelens_policy.json (添付された) ポリシードキュメントを使用して IAM ポリシーを作成します。これに関する詳細については、IAM ドキュメント の 「JSON タブでのポリシーの作成」を参照してください。

  2. このポリシーを、先に作成した Amazon ECS タスク実行 IAM ロールに添付します。詳細については、IAM ドキュメントの「IAM ポリシーの追加 ( CLI)」を参照してください。 

システム管理者、開発者

Amazon ECS タスク定義のセットアップ

  1. Task.json サンプルタスク定義 (添付) の以下のセクションを更新してください。

    • タスク実行 IAM ロールの ARN を使用して、executionRoleArntaskRoleArn を更新します。

    • 先に作成したカスタム Fluent Bit Docker イメージで、containerDefinitions のイメージを更新します。

    • containerDefinitions のイメージを、アプリケーションイメージの名前で更新します。

  2. Amazon ECS コンソールを開き、[タスク定義] を選択し、[新しいタスク定義の作成] を選択後、[互換性の選択] ページで [Fargate] を選択します。   

  3. [Json による構成] を選択し、更新した Task.json ファイルをテキスト領域に貼り付けて、[保存] を選択します。

  4. タスク定義を作成します。

これに関する詳細については、Amazon ECS ドキュメントの「タスク定義の作成」」を参照してください。

システム管理者、開発者
タスク説明必要なスキル

Amazon ECS タスクを実行します。

Amazon ECS コンソールで [クラスター] を選択し、先に作成したクラスターを選択して、スタンドアロンタスクを実行します。

これに関する詳細については、Amazon ECS ドキュメントの「スタンドアロンタスクの実行」を参照してください。

システム管理者、開発者
タスク説明必要なスキル

ログを検証します。

  1. CloudWatch コンソールを開き、[ロググループ] を選択して、/aws/ecs/containerinsights/{{cluster_ARN}}/firelens/application を選択します。

  2. ログ、特にカスタムパーサーによって追加されたカスタムフィールドを検証します。

  3. CloudWatch を使用して、カスタムフィールドに基づいてログをフィルタリングします。

システム管理者、開発者

関連リソース

アタッチメント

このドキュメントに関連する追加コンテンツにアクセスするには、次のファイルを解凍してください。「attachment.zip