Konfiguration von Amazon ECS-Protokollen für hohen Durchsatz - Amazon Elastic Container Service

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 Speicher gepuffert werden, indem Sie den Wert in der angeben. log-driver-buffer-limit Weitere Informationen finden Sie unter Fluentd-Protokollierungstreiber in der Docker-Dokumentation.

Verwenden Sie diese Option bei hohem Durchsatz, da Docker möglicherweise nicht mehr genügend Pufferspeicher hat und Puffernachrichten verwirft, sodass 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 Amazon-EC2-Launchtyp und vom Fargate-Launchtyp mit Plattformversion 1.4.0 oder höher unterstützt.

  • Die Option ist nur gültig, wenn logDriver auf awsfirelens gesetzt ist.

  • Das Standard-Pufferlimit ist 1048576 Protokollzeilen.

  • Die gültigen Werte sind 0 und 536870912 Log-Zeilen.

  • Die maximale Speichermenge, die für diesen Puffer verwendet wird, ist das Produkt aus der Größe jeder Protokollzeile und der Größe des Puffers. Wenn die Protokollzeilen der Anwendung beispielsweise im Durchschnitt 2 KiB betragen, würde ein Pufferlimit von 4096 höchstens 8 MiB verbrauchen. Die Gesamtmenge des auf Aufgabenebene zugewiesenen Speichers sollte größer sein als die Speichermenge, die allen Containern zusätzlich zum Speicherpuffer des Protokolltreibers zugewiesen ist.

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.

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 unter fluent-logger-golang on. GitHub

Im Folgenden wird die Syntax für die Angabe von gezeigt. log-driver-buffer-limit my_service_Ersetzen Sie es durch den Namen Ihres Dienstes:

{ "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 } ] }