使用火力記錄路由器為 Amazon ECS 建立自訂記錄剖析器 - AWS Prescriptive Guidance

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

使用火力記錄路由器為 Amazon ECS 建立自訂記錄剖析器

由瓦倫夏爾馬 (AWS) 創建

環境:生產

技術:DevOps; 容器和微服務

工作負載:所有其他工作負載

AWS 服務:Amazon ECS

Summary

火龍是 Amazon Elastic Container Service (Amazon ECS) 和 AWS Fargate 的日誌路由器。您可以使用火朗斯將容器日誌從亞馬遜 ECS 路由到 Amazon CloudWatch 和其他目的地(例如SplunkSumo Logic。火透鏡使用Exentd流利位元作為日誌代理程序,這意味著您可以使用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 的容器化應用程式。 

Architecture

技術堆疊

  • CloudWatch

  • Amazon ECR

  • Amazon ECS

  • Fargate

  • Docker

  • 流利位元

Tools

  • Amazon ECR— Amazon Elastic Container Registry (Amazon ECR) 是 AWS 受管的容器映像登錄服務,具安全性、可擴展性和可靠性。

  • Amazon ECS— Amazon Elastic Container Service (Amazon ECS) 是具高可擴展性且快速的容器管理服務,可以在叢集上輕鬆執行、停止及管理容器。

  • AWS Identity and Access Management (IAM)— IAM 是一種 Web 服務,可以安全地控制對 AWS 服務的存取。

  • AWS CLI— AWS 命 Command Line Interface (AWS CLI) 是一種開放原始碼工具,可讓您在命令列 shell 中使用命令來與 AWS 服務互動。

  • Docker— Docker 是開發、運送和執行應用程式的開放平台。

Code

下列檔案會附加至此樣式:

  • customFluentBit.zip— 包含要新增自訂剖析和組態的檔案。

  • firelens_policy.json— 包含要建立 IAM 政策的政策文件。

  • Task.json— 包含 Amazon ECS 的範例任務定義。

Epics

任務描述所需技能
建立 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— 包含篩選器和服務指示。

    • Dockerfile

建立自訂 Docker 影像。
  1. 將目錄切換至 customFluentBit

  2. 打開亞馬遜 ECR 主控台,選擇fluentbit_custom存放庫,然後選擇檢視推送命令。 

  3. 上傳您的專案。 

  4. 上傳完成之後,複製組建的 URL。當您在 Amazon ECS 中建立容器時,必須使用此 URL

如需此項目的詳細資訊,請參閱推送 Docker 映像在 Amazon ECR 文件中。 

系統管理員, 開發人員
任務描述所需技能
建立 Amazon ECS 叢集。

建立 Amazon ECS 叢集,請依照僅限網路範本章節建立叢集在 Amazon ECS 文件中。

請注意:請務必選擇建立 VPC,為 Amazon ECS 叢集建立新的虛擬私有雲端 (VPC)。

系統管理員, 開發人員
任務描述所需技能
設定 Amazon ECS 任務執行 IAM 角色。

建立 Amazon ECS 任務執行 IAM 角色,方法是使用AmazonECSTaskExecutionRolePolicy受管政策。如需此項目的詳細資訊,請參閱Amazon ECS 任務執行 IAM 角色在 Amazon ECS 文件中。

請注意:確保您記錄 IAM 角色的 Amazon Resource Name (ARN)。

系統管理員, 開發人員
將 IAM 政策附加到 Amazon ECS 任務執行 IAM 角色。
  1. 透過使用firelens_policy.json(隨附) 政策文件。如需此項目的詳細資訊,請參閱在 JSON 標籤上建立政策在 IAM 文件中。

  2. 將此政策附加到您先前建立的 Amazon ECS 任務執行 IAM 角色。如需此項目的詳細資訊,請參閱新增 IAM 政策 (AWS CLI)在 IAM 文件中。 

系統管理員, 開發人員
設定 Amazon ECS 任務定義。
  1. 下列各節中更新Task.json範例工作定義 (已附加):

    • 更新executionRoleArntaskRoleArn具有任務執行 IAM 角色的 ARN

    • 更新中的影像containerDefinitions與您先前創建的自定義流利位 Docker 映像

    • 更新中的影像containerDefinitions替換為您的應用程序映像的名稱

  2. 開啟 Amazon ECS 主控台,選擇任務定義中,選擇建立新任務定義,然後選擇Fargate選擇相容性(憑證已建立!) 頁面上的名稱有些許差異。   

  3. 選擇透過 Json 進行設定,貼上更新的Task.json檔案放入文字區域,然後選擇Save (儲存)

  4. 建立任務定義。

如需此項目的詳細資訊,請參閱建立任務定義在 Amazon ECS 文件中。

系統管理員, 開發人員
任務描述所需技能
執行 Amazon ECS 任務。

在 Amazon ECS 主控台上,選擇叢集,選擇您之前建立的叢集,然後執行獨立任務。

如需此項目的詳細資訊,請參閱執行獨立任務在 Amazon ECS 文件中。

系統管理員, 開發人員
任務描述所需技能
驗證記錄。
  1. 開啟 CloudWatch 主控台,選擇日誌群組,然後選擇/aws/ecs/containerinsights/{{cluster_ARN}}/firelens/application

  2. 請確認記錄檔,特別是自訂剖析器新增的自訂欄位。

  3. 使用 CloudWatch 根據自訂欄位篩選記錄檔。

系統管理員, 開發人員

相關資源

Attachments

attachment.zip