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.
Exemple de définition de ECS tâche Amazon : acheminer les journaux vers FireLens
Pour utiliser le routage personnalisé des journaux avec FireLens, vous devez spécifier les éléments suivants dans votre définition de tâche :
-
Un conteneur de routeurs de journaux contenant un FireLens configuration. Nous recommandons que le conteneur soit marqué comme
essential
. -
Un ou plusieurs conteneurs d'application contenant une configuration de journal spécifiant le pilote de journal
awsfirelens
. -
Un IAM rôle de tâche Amazon Resource Name (ARN) qui contient les autorisations nécessaires pour que la tâche achemine les journaux.
Lorsque vous créez une nouvelle définition de tâche à l'aide de AWS Management Console, il existe une section FireLens d'intégration qui facilite l'ajout d'un conteneur de routeurs de journaux. Pour de plus amples informations, veuillez consulter Création d'une définition de ECS tâche Amazon à l'aide de la console.
Amazon ECS convertit la configuration du journal et génère la configuration de sortie Fluentd ou Fluent Bit. La configuration de sortie est montée dans le conteneur de routage des journaux à /fluent-bit/etc/fluent-bit.conf
pour Fluent Bit et /fluentd/etc/fluent.conf
pour Fluentd.
Important
FireLens écoute sur le port24224
. Par conséquent, pour garantir que le routeur de FireLens journaux n'est pas accessible en dehors de la tâche, vous ne devez pas autoriser le trafic entrant sur le port 24224
du groupe de sécurité utilisé par votre tâche. Pour les tâches utilisant le mode réseau awsvpc
, il s'agit du groupe de sécurité associé à la tâche. Pour les tâches qui utilisent le mode host
réseau, il s'agit du groupe de sécurité associé à l'EC2instance Amazon hébergeant la tâche. Pour les tâches utilisant le mode réseau bridge
, ne créez pas de mappages de ports utilisant le port 24224
.
Par défaut, Amazon ECS ajoute des champs supplémentaires dans vos entrées de journal afin d'identifier la source des journaux.
-
ecs_cluster
: nom du cluster dont la tâche fait partie. -
ecs_task_arn
— Le nom complet de la ressource Amazon (ARN) de la tâche à laquelle le conteneur fait partie. -
ecs_task_definition
: nom et révision de la définition de tâche que la tâche utilise. -
ec2_instance_id
— L'ID d'EC2instance Amazon sur lequel le conteneur est hébergé. Ce champ n'est valide que pour les tâches utilisant le type de EC2 lancement.
Vous pouvez définir la valeur enable-ecs-log-metadata
sur false
si vous ne souhaitez pas obtenir les métadonnées.
L'exemple de définition de tâche suivant définit un conteneur de routeur de journaux qui utilise Fluent Bit pour acheminer ses CloudWatch journaux vers Logs. Il définit également un conteneur d'applications qui utilise une configuration de journal pour acheminer les journaux vers Amazon Data Firehose et définit la mémoire utilisée pour mettre en mémoire tampon les événements à 2 Mo.
Note
Pour plus d'exemples de définitions de tâches, consultez les ECS FireLensexemples d'Amazon
{ "family": "firelens-example-firehose", "taskRoleArn": "arn:aws:iam::123456789012:role/ecs_task_iam_role", "containerDefinitions": [ { "name": "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": "2097152" } }, "memoryReservation": 100 } ] }
Les paires clé-valeur spécifiées sous forme d'options dans l'logConfiguration
objet sont utilisées pour générer le Fluentd or Fluent Bit configuration de sortie. Voici un exemple de code tiré d'un Fluent Bit définition de sortie.
[OUTPUT] Name firehose Match app-firelens* region
us-west-2
delivery_streammy-stream
Note
FireLens gère la match
configuration. Vous ne spécifiez pas la match
configuration dans votre définition de tâche.
Utiliser un fichier de configuration personnalisé
Vous pouvez spécifier un fichier de configuration personnalisé. Le format du fichier de configuration est le format natif du routeur de journal que vous utilisez. Pour plus d'informations, consultez Syntaxe du fichier de configuration Fluentd
Dans votre fichier de configuration personnalisé, pour les tâches utilisant le mode bridge
ou le mode awsvpc
réseau, ne définissez pas de saisie directe Fluentd ou Fluent Bit car TCP FireLens l'ajoute à la configuration d'entrée.
Votre FireLens la configuration doit contenir les options suivantes pour spécifier un fichier de configuration personnalisé :
config-file-type
-
Emplacement source du fichier de configuration personnalisé. Les options disponibles sont
s3
oufile
.Note
Les tâches hébergées sur AWS Fargate ne prennent en charge que le type
file
de fichier de configuration. config-file-value
-
Source du fichier de configuration personnalisé. Si le type de fichier de
s3
configuration est utilisé, la valeur du fichier de configuration est la totalité ARN du compartiment et du fichier Amazon S3. Si le type de fichier de configurationfile
est utilisé, la valeur du fichier de configuration est le chemin d'accès complet du fichier de configuration qui existe soit dans l'image du conteneur, soit sur un volume monté dans le conteneur.Important
Lorsque vous utilisez un fichier de configuration personnalisé, vous devez spécifier un chemin différent de celui FireLens utilise. Amazon ECS réserve le
/fluent-bit/etc/fluent-bit.conf
chemin de fichier pour Fluent Bit et/fluentd/etc/fluent.conf
pour Fluentd.
L'exemple suivant montre la syntaxe requise lors de la spécification d'une configuration personnalisée.
Important
Pour spécifier un fichier de configuration personnalisé hébergé dans Amazon S3, assurez-vous d'avoir créé un IAM rôle d'exécution de tâche avec les autorisations appropriées.
Voici la syntaxe requise lors de la spécification d'une configuration personnalisée.
{ "containerDefinitions": [ { "essential": true, "image": "906394416424.dkr.ecr.
us-west-2
.amazonaws.com/aws-for-fluent-bit:stable", "name": "log_router", "firelensConfiguration": { "type": "fluentbit", "options": { "config-file-type": "s3
|file
", "config-file-value": "arn:aws:s3:::
|amzn-s3-demo-bucket
/fluent.conffilepath
" } } } ] }
Note
Les tâches hébergées sur AWS Fargate ne prennent en charge que le type file
de fichier de configuration.