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