Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.
Konfiguration von Amazon-ECS-Protokollen für hohen Durchsatz
Wenn Sie eine Aufgabendefinition erstellen, können Sie die Anzahl der Protokollzeilen angeben, die im Arbeitsspeicher gepuffert werden, indem Sie den Wert in log-driver-buffer-limit angeben. Weitere Informationen finden Sie unter Fluentd-Protokollierungstreiber
Verwenden Sie diese Option bei hohem Durchsatz, da Docker möglicherweise der Zwischenspeicher ausgeht und gepufferte Nachrichten verworfen werden, damit neue Nachrichten hinzugefügt werden können.
Beachten Sie bei der Verwendung FireLens für Amazon ECS mit der Option Buffer Limit Folgendes:
-
Diese Option wird vom Typ Fargate mit Plattformversion
1.4.0oder höher unterstützt. EC2 -
Die Option ist nur gültig, wenn
logDriveraufawsfirelensgesetzt ist. -
Das Standard-Pufferlimit ist
1048576Protokollzeilen. -
Das Pufferlimit muss größer oder gleich
0und kleiner als536870912-Protokollzeilen sein. -
Die maximale Menge an Arbeitsspeicher, die für diesen Puffer verwendet wird, ist die Summe der Größe jeder Protokollzeile und der Größe des Puffers. Wenn die Protokollzeilen der Anwendung beispielsweise im Durchschnitt
2KiB betragen, würde ein Pufferlimit von 4 096 höchstens8MiB verbrauchen. Die Gesamtmenge des auf Aufgabenebene zugewiesenen Arbeitsspeichers muss zusätzlich zum Arbeitsspeicher-Puffer des Protokolltreibers größer sein als die für alle Container zugewiesene Menge an Arbeitsspeicher.
Wenn der awsfirelens-Protokolltreiber in einer Aufgabendefinition angegeben wird, injiziert der Amazon ECS Container-Agent die folgenden Umgebungsvariablen in den Container:
FLUENT_HOST-
Die IP-Adresse, die dem FireLens Container zugewiesen ist.
Anmerkung
Wenn Sie den
bridgeNetzwerkmodus verwenden EC2 , kann dieFLUENT_HOSTUmgebungsvariable in Ihrem Anwendungscontainer nach einem Neustart des FireLens Log-Router-Containers (des Containers mit demfirelensConfigurationObjekt in seiner Containerdefinition) ungenau werden. Das liegt daran, dassFLUENT_HOSTeine dynamische IP-Adresse ist, die sich nach einem Neustart ändern kann. Die direkte Protokollierung vom Anwendungs-Container zurFLUENT_HOSTIP-Adresse kann nach einer Adressänderung fehlschlagen. Weitere Informationen zum Neustart einzelner Container finden Sie unter Einzelne Container in Amazon-ECS-Aufgaben mit Richtlinien für den Container-Neustart neu starten. FLUENT_PORT-
Der Port, über den das Fluent Forward-Protokoll kommuniziert.
Sie können die Umgebungsvariablen FLUENT_HOST und FLUENT_PORT verwenden, um Protokolle direkt vom Code aus in den Protokoll-Router zu schreiben, anstatt durch stdout zu gehen. Weitere Informationen finden Sie fluent-logger-golang
Im Folgenden wird die Syntax für die Angabe von gezeigtlog-driver-buffer-limit. Ersetzen Sie my_service_ durch den Namen Ihres Services.
{ "containerDefinitions": [ { "name": "my_service_log_router", "image": "public.ecr.aws/aws-observability/aws-for-fluent-bit:stable", "cpu": 0, "memoryReservation": 51, "portMappings": [], "essential": true, "environment": [], "mountPoints": [], "volumesFrom": [], "logConfiguration": { "logDriver": "awslogs", "options": { "awslogs-group": "/ecs/ecs-aws-firelens-sidecar-container", "mode": "non-blocking", "awslogs-create-group": "true", "max-buffer-size": "25m", "awslogs-region": "us-east-1", "awslogs-stream-prefix": "firelens" }, "secretOptions": [] }, "systemControls": [], "firelensConfiguration": { "type": "fluentbit" } }, { "essential": true, "image": "public.ecr.aws/docker/library/httpd:latest", "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 } ] }