Configuration d'Amazon ECS Logs pour un débit élevé - Amazon Elastic Container Service

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 d'Amazon ECS Logs 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 spécifiant la valeur dans lelog-driver-buffer-limit. Pour plus d'informations, consultez Fluentd logging drive (Pilote de journalisation) dans la documentation Docker.

Utilisez cette option lorsque le débit est élevé, car Docker risque de manquer de mémoire tampon et de supprimer les messages de la mémoire tampon. Il peut donc ajouter de nouveaux messages.

Tenez compte des points suivants lorsque vous utilisez FireLens pour Amazon ECS avec l'option de limite de mémoire tampon :

  • Cette option est prise en charge sur le type de EC2 lancement Amazon et le type de lancement Fargate avec une version de plateforme 1.4.0 ou ultérieure.

  • L'option n'est valide que lorsque logDriver est défini sur awsfirelens.

  • La limite de mémoire tampon par défaut est le nombre de lignes de 1048576 journal.

  • La limite de mémoire tampon doit être supérieure ou égale 0 et inférieure aux lignes de 536870912 log.

  • 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 2 KiB, une limite de mémoire tampon de 4 096 utiliserait au maximum 1 8 MiB. 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 de la mémoire tampon du pilote de journal.

Lorsque le pilote de awsfirelens journal est spécifié dans une définition de tâche, l'agent de ECS conteneur Amazon injecte les variables d'environnement suivantes dans le conteneur :

FLUENT_HOST

Adresse IP attribuée au FireLens conteneur.

Note

Si vous utilisez le type de EC2 lancement avec le mode bridge ré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 contenant l'firelensConfigurationobjet dans sa définition de conteneur). Cela FLUENT_HOST est dû au fait qu'il s'agit d'une adresse IP dynamique qui peut changer après un redémarrage. La journalisation directe depuis le conteneur de l'application vers l'adresse FLUENT_HOST IP peut commencer à échouer après le changement d'adresse. Pour plus d'informations sur le redémarrage de conteneurs individuels, consultezRedémarrer des conteneurs individuels dans Amazon ECS Tasks avec des 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-golangci-dessous GitHub.

Ce qui suit montre la syntaxe permettant de spécifier lelog-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": [], "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 } ] }