本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
設定 Amazon ECS 日誌以獲得高輸送量
建立作業定義時,可以指定記憶體中緩衝的記錄行數,方法是指定中的log-driver-buffer-limit
值。如需詳細資訊,請參閱 Docker 文件中的 Fluentd 登入驅動程式
當輸送量很高時,請使用此選項,因為 Docker 可能會耗盡緩衝區記憶體並捨棄緩衝區訊息,以便新增訊息。
使用具有緩衝區限制選項 FireLens 的 Amazon ECS 時,請考慮下列事項:
-
Amazon EC2 啟動類型和具有平台版本的
1.4.0
或更新版本的 Fargate 啟動類型支援此選項。 -
只有在
logDriver
設定為awsfirelens
時,此選項才有效。 -
預設緩衝區限制為
1048576
記錄行。 -
有效值
0
和536870912
記錄行。 -
此緩衝區使用的最大記憶體容量是每個記錄行的大小和緩衝區大小的乘積。例如,如果應用程式的記錄行平均為
2
KiB,則最多8
會使用 4096 的緩衝區限制。在工作層級配置的記憶體總量應該大於除了記錄驅動程式記憶體緩衝區之外,配置給所有容器的記憶體數量。
在任務定義中指定 awsfirelens
日誌驅動程式時,Amazon ECS 代理程式會將下列環境變數插入容器中:
FLUENT_HOST
-
指派給 FireLens 容器的 IP 位址。
FLUENT_PORT
-
流利轉送通訊協定正在接聽的連接埠。
您可以使用 FLUENT_HOST
和 FLUENT_PORT
環境變數從程式碼直接登入日誌路由器,而不是透過 stdout
。有關詳細資訊,請參閱中fluent-logger-golang
以下顯示指定的語法log-driver-buffer-limit
。替換my_service_
為您的服務名稱:
{ "containerDefinitions": [ { "essential": true, "image": "906394416424.dkr.ecr.us-west-2.amazonaws.com/aws-for-fluent-bit:stable", "name": "
my_service_
log_router", "firelensConfiguration": { "type": "fluentbit" }, "logConfiguration": { "logDriver": "awslogs", "options": { "awslogs-group": "firelens-container", "awslogs-region": "us-west-2", "awslogs-create-group": "true", "awslogs-stream-prefix": "firelens" } }, "memoryReservation": 50 }, { "essential": true, "image": "httpd", "name": "app", "logConfiguration": { "logDriver": "awsfirelens", "options": { "Name": "firehose", "region": "us-west-2", "delivery_stream": "my-stream", "log-driver-buffer-limit": "51200" } }, "dependsOn": [ { "containerName": "log_router", "condition": "START" } ], "memoryReservation": 100 } ] }