Configurazione dei log di Amazon ECS per un throughput elevato - Amazon Elastic Container Service

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

Configurazione dei log di Amazon ECS per un throughput elevato

Quando si crea una definizione di attività, è possibile specificare il numero di righe di registro memorizzate nel buffer di memoria specificando il valore in. log-driver-buffer-limit Per ulteriori informazioni, consulta la pagina Driver di registro di Fluentd nella documentazione Docker.

Utilizza questa opzione quando la velocità effettiva è elevata, poiché Docker potrebbe esaurire la memoria buffer e scartare i messaggi del buffer, in modo da poter aggiungere nuovi messaggi.

Considera quanto segue quando utilizzi FireLens Amazon ECS con l'opzione di limite di buffer:

  • Questa opzione è supportata nel tipo di EC2 lancio Amazon e nel tipo di lancio Fargate con versione della piattaforma 1.4.0 o successiva.

  • L'opzione è valida solo quando logDriver è impostato su awsfirelens.

  • Il limite di buffer predefinito è costituito dalle righe di 1048576 registro.

  • Il limite del buffer deve essere maggiore o uguale 0 e minore delle righe di 536870912 registro.

  • La quantità massima di memoria utilizzata per questo buffer è il prodotto della dimensione di ogni riga di registro e della dimensione del buffer. Ad esempio, se le righe di registro dell'applicazione sono in media 2 KB, un limite di buffer di 4096 utilizzerebbe al massimo 8 MiB. La quantità totale di memoria allocata a livello di attività deve essere maggiore della quantità di memoria allocata per tutti i contenitori oltre al buffer di memoria del driver di registro.

Quando il driver di log awsfirelens è specificato in una definizione di attività, l'agente Amazon ECS inserisce le seguenti variabili di ambiente nel container:

FLUENT_HOST

L'indirizzo IP assegnato al contenitore. FireLens

Nota

Se utilizzate il tipo di EC2 avvio con la modalità di bridge rete, la variabile di FLUENT_HOST ambiente nel contenitore dell'applicazione può diventare imprecisa dopo il riavvio del contenitore del FireLens log router (il contenitore con l'firelensConfigurationoggetto nella definizione del contenitore). Questo perché FLUENT_HOST è un indirizzo IP dinamico e può cambiare dopo un riavvio. La registrazione diretta dal contenitore dell'applicazione all'indirizzo FLUENT_HOST IP può iniziare a fallire dopo la modifica dell'indirizzo. Per ulteriori informazioni sul riavvio di singoli contenitori, vedere. Riavvia i singoli contenitori nelle attività di Amazon ECS con le politiche di riavvio dei contenitori

FLUENT_PORT

La porta su cui il protocollo Fluent Forward è in ascolto.

Le variabili di ambiente FLUENT_HOST e FLUENT_PORT consentono di accedere direttamente al router di log dal codice anziché passare attraverso stdout. Per ulteriori informazioni, vedere fluent-logger-golangon. GitHub

Di seguito viene illustrata la sintassi per specificare il. log-driver-buffer-limit Sostituisci my_service_ con il nome del tuo servizio:

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