Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.
Configuration des journaux Amazon ECS pour un débit élevé
Lorsque vous créez une définition de tâche, vous pouvez spécifier le nombre de lignes de journal mises en mémoire tampon en indiquant la valeur dans la log-driver-buffer-limit. Pour plus d’informations, consultez la section Pilote de journalisation
Utilisez cette option lorsque le débit est élevé, car Docker risque de manquer de mémoire tampon et de rejeter les messages tampons afin d’en ajouter de nouveaux.
Tenez compte des points suivants lors de l'utilisation FireLens pour Amazon ECS avec l'option de limite de mémoire tampon :
-
Cette option est prise en charge sur EC2 les versions de type Fargate ou ultérieures de la plateforme
1.4.0. -
L'option n'est valide que lorsque
logDriverest défini surawsfirelens. -
La limite par défaut du tampon est de
1048576lignes de journal. -
La limite de mémoire tampon doit être supérieure ou égale à
0et inférieure à536870912lignes de journal. -
La quantité maximale de mémoire utilisée pour cette mémoire tampon est le produit de la taille de chaque ligne de journal par la taille de la mémoire tampon. Par exemple, si les lignes de journal de l’application sont en moyenne en
2KiB, une limite de mémoire tampon de 4 096 utiliserait au maximum8Mio. La quantité totale de mémoire allouée au niveau de la tâche doit être supérieure à la quantité de mémoire allouée à tous les conteneurs, en plus du tampon mémoire du pilote de journalisation.
Lorsque le pilote de journal awsfirelens est spécifié dans une définition de tâche, l'agent de conteneur Amazon ECS injecte les variables d'environnement suivantes dans le conteneur :
FLUENT_HOST-
Adresse IP attribuée au FireLens conteneur.
Note
Si vous utilisez EC2 le mode
bridgeréseau, la variable d'FLUENT_HOSTenvironnement de votre conteneur d'applications peut devenir inexacte après le redémarrage du conteneur FireLens log router (le conteneur dont l'firelensConfigurationobjet figure dans sa définition de conteneur). Cela est dû au fait queFLUENT_HOSTest une adresse IP dynamique qui peut changer après un redémarrage. La journalisation directe depuis le conteneur de l’application vers l’adresse IPFLUENT_HOSTpeut commencer à échouer après le changement d’adresse. Pour obtenir plus d’informations sur le redémarrage de conteneurs individuels, consultez la section Redémarrage de conteneurs individuels dans les tâches Amazon ECS à l’aide de politiques de redémarrage de conteneurs. FLUENT_PORT-
Port sur lequel le protocole Fluent Forward écoute.
Vous pouvez utiliser les variables d'environnement FLUENT_HOST et FLUENT_PORT pour vous connecter directement au routeur de journal à partir du code au lieu de passer par stdout. Pour plus d'informations, voir fluent-logger-golang
Voici la syntaxe à utiliser pour spécifier la log-driver-buffer-limit. Remplacez my_service_ par le nom de votre service :
{ "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 } ] }