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 ECS Amazon-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
Verwenden Sie diese Option bei hohem Durchsatz, da Docker möglicherweise nicht mehr genügend Pufferspeicher hat und Puffermeldungen verwirft, sodass neue Nachrichten hinzugefügt werden können.
Beachten Sie Folgendes, wenn Sie FireLens für Amazon ECS mit der Option Buffer Limit verwenden:
-
Diese Option wird für den EC2 Amazon-Starttyp und den Fargate-Starttyp mit Plattformversion
1.4.0
oder höher unterstützt. -
Die Option ist nur gültig, wenn
logDriver
aufawsfirelens
gesetzt ist. -
Das Standard-Pufferlimit liegt
1048576
bei Log-Zeilen. -
Das Pufferlimit muss größer oder gleich
0
und kleiner als536870912
Protokollzeilen sein. -
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öchstens8
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 ist, fügt der ECS Amazon-Container-Agent die folgenden Umgebungsvariablen in den Container ein:
FLUENT_HOST
-
Die IP-Adresse, die dem FireLens Container zugewiesen ist.
Anmerkung
Wenn Sie den EC2 Starttyp mit dem
bridge
Netzwerkmodus verwenden, kann dieFLUENT_HOST
Umgebungsvariable in Ihrem Anwendungscontainer nach einem Neustart des FireLens Log Router-Containers (des Containers mit demfirelensConfiguration
Objekt in seiner Containerdefinition) ungenau werden. DasFLUENT_HOST
liegt daran, dass es sich um eine dynamische IP-Adresse handelt, die sich nach einem Neustart ändern kann. Die direkte Protokollierung vom Anwendungscontainer zurFLUENT_HOST
IP-Adresse kann nach einer Adressänderung fehlschlagen. Weitere Informationen zum Neustarten einzelner Container finden Sie unterStarten Sie einzelne Container in ECS Amazon-Aufgaben mit Container-Neustart-Richtlinien neu. 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
. my_service_
Ersetzen Sie es durch den Namen Ihres Dienstes:
{ "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": [], "user": "0", "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": "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 } ] }