將 Amazon ECS 日誌傳送到 AWS 服務或 AWS Partner - Amazon Elastic Container Service

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

將 Amazon ECS 日誌傳送到 AWS 服務或 AWS Partner

您可以使 FireLens 用 Amazon ECS 使用任務定義參數將日誌路由到 AWS 服務或 AWS Partner Network (APN) 目的地以進行日誌儲存和分析。這 AWS Partner Network 是一個由合作夥伴組成的全球社群,利用計畫、專業知識和資源來建置、行銷和銷售客戶產品。如需詳細資訊,請參閱 AWS Partner。FireLens 使用 Fluentd 和 Fluent Bit。我們提供 AWS for Fluent Bit 映像,或者您也可以使用自己的 Fluentd 或 Fluent Bit 映像。

使 FireLens 用 Amazon ECS 時,請考慮下列事項:

  • 建議您將記錄容器名稱新增my_service_至記錄檔容器名稱,以便在主控台中輕鬆區分容器名稱。

  • Amazon ECS 預設會在應用程式容器和容器之間新增起始容器順序相依性。FireLens當您在應用程式容器和容器之間指定容器順序時,會覆寫預設的起始容器順序。FireLens

  • FireLensAmazon ECS 適用於在 Linux 上託管的任務和 Linux 上的 Amazon EC2 AWS Fargate 上託管的任務都受到支持。Windows 容器不支援 FireLens。

    如需如何為 Windows 容器設定集中式記錄的相關資訊,請參閱 Centralized logging for Windows containers on Amazon ECS using Fluent Bit (《使用 Fluent Bit 為 Amazon ECS 上的 Windows 容器設定集中式記錄》)。

  • 您可以使用 AWS CloudFormation 模板。為 Amazon ECS FireLens 進行配置。若要取得更多資訊,請參閱AWS CloudFormation 使用指南AWS::ECS::TaskDefinition FirelensConfiguration中的〈

  • FireLens偵聽連接埠24224,因此為了確保在工作之外無法連線到 FireLens 記錄路由器,您不得允許任務使用的安全性群組24224中的連接埠上的輸入流量。對於使用 awsvpc 網路模式的任務,這是與任務相關聯的安全群組。對於使用 host 網路模式的任務,這是與託管任務的 Amazon EC2 執行個體相關聯的安全群組。對於使用 bridge 網路模式的任務,請不要建立使用連接埠 24224 的任何連接埠映射。

  • 對於使用bridge網路模式的工作,具有 FireLens 組態的容器必須在任何依賴該容器的應用程式容器啟動之前啟動。若要控制容器的起始順序,請在工作定義中使用相依性條件。如需詳細資訊,請參閱 容器相依性

    注意

    如果您在容器定義中搭 FireLens 配組態使用相依性條件參數,請確定每個容器都有STARTHEALTHY條件需求。

  • 根據預設,FireLens 將叢集和任務定義名稱以及叢集的 Amazon Resource Name (ARN) 作為中繼資料索引鍵新增到 stout/stderr 容器紀錄。以下是中繼資料格式的範例。

    "ecs_cluster": "cluster-name", "ecs_task_arn": "arn:aws:ecs:region:111122223333:task/cluster-name/f2ad7dba413f45ddb4EXAMPLE", "ecs_task_definition": "task-def-name:revision",

    如果您不想在紀錄中使用中繼資料,請在任務定義 firelensConfiguration 部分中將 false 設定為 enable-ecs-log-metadata

    "firelensConfiguration":{ "type":"fluentbit", "options":{ "enable-ecs-log-metadata":"false", "config-file-type":"file", "config-file-value":"/extra.conf" }

若要使用此功能,您必須為任務建立 IAM 角色,以提供使用任 AWS 務所需的任何服務所需的許可。例如,如果容器將日誌路由到 Firehose,則該任務需要調用 firehose:PutRecordBatch API 的權限。如需詳細資訊,請參閱 《IAM 使用者指南》中的新增和移除 IAM 身分許可

在下列情況下,您的任務可能還需要 Amazon ECS 任務執行角色。如需詳細資訊,請參閱 Amazon ECS 任務執行 IAM 角色

  • 如果您的任務託管在 Fargate 上,而且您要從 Amazon ECR 提取容器映像,或從日誌組態 AWS Secrets Manager 中參考敏感資料,則必須包含任務執行 IAM 角色。

  • 當您使用 Amazon S3 中託管的自訂組態檔案時,您的任務執行 IAM 角色必須包含s3:GetObject許可。

如需如何搭配 Amazon ECS 使用多個組態檔案 (包括您託管的檔案或 Amazon S3 中的檔案) 的詳細資訊,請參閱 ECS 上流利位元的初始化程序、多組態支援。