本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
將 Amazon ECS 日誌傳送至 AWS 服務或 AWS Partner
您可以使用 FireLens for Amazon ECS 來使用任務定義參數,將日誌路由到 AWS 服務或 AWS Partner Network (APN) 目的地,以進行日誌儲存和分析。 AWS Partner Network 是一個全球合作夥伴社群,利用計劃、專業知識和資源來建置、行銷和銷售客戶產品。如需詳細資訊,請參閱 AWS Partner
根據預設,Amazon ECS 會設定容器相依性,讓 Firelens 容器在使用該容器的任何容器之前啟動。Firelens 容器也會在使用該容器的所有容器停止後停止。
使用 FireLens for Amazon ECS 時,請考量下列事項:
-
建議您將
my_service_
新增至日誌容器名稱,以便在 主控台中輕鬆區分容器名稱。 -
Amazon ECS 預設會在應用程式容器與FireLens容器之間新增啟動容器順序相依性。當您在應用程式容器與FireLens容器之間指定容器順序時,會覆寫預設的啟動容器順序。
-
託管於 Linux 上的 AWS Fargate 和 Linux 上的 Amazon EC2 的任務支援 Amazon ECS 的 FireLens。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 配置的容器定義中使用相依性條件參數,請確定每個容器都有
START
或HEALTHY
條件需求。 -
根據預設,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 上的 Fluent Bit 啟動程序、多組態支援
如需範例組態的資訊,請參閱 Amazon ECS 任務定義範例:將日誌路由至 FireLens