

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.

# Envoyez les journaux Amazon ECS à CloudWatch
<a name="using_awslogs"></a>

Vous pouvez configurer les conteneurs de vos tâches pour envoyer des informations de journal à CloudWatch Logs. Si vous utilisez Fargate pour vos tâches, vous pouvez afficher les journaux de vos conteneurs. Si vous utilisez EC2, vous pouvez afficher différents journaux de vos conteneurs dans un emplacement pratique, et cela empêche vos journaux de conteneur d’occuper de l’espace disque sur vos instances de conteneur.

**Note**  
Le type des informations qui sont consignées par les conteneurs dans votre tâche dépend principalement de leur commande `ENTRYPOINT`. Par défaut, les journaux qui sont capturés affichent la sortie de la commande qui peuvent s'afficher normalement dans un terminal interactif si vous aviez exécuté le conteneur localement, c'est-à-dire les flux d'I/O `STDOUT` et `STDERR`. Le pilote de `awslogs` journal transmet simplement ces journaux de Docker à CloudWatch Logs. Pour plus d'informations sur la façon dont les journaux Docker sont traités, et notamment sur les autres façons de capturer différentes données de fichiers ou différents flux, consultez [View logs for a container or service](https://docs.docker.com/engine/logging/) dans la documentation Docker.

Pour envoyer les journaux système de vos instances de conteneur Amazon ECS vers CloudWatch Logs, consultez la section [Surveillance des fichiers journaux](https://docs.aws.amazon.com/AmazonCloudWatch/latest/DeveloperGuide/WhatIsCloudWatchLogs.html) et [CloudWatch des quotas de journaux](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/cloudwatch_limits_cwl.html) dans le *guide de l'utilisateur Amazon CloudWatch Logs*.

## Fargate
<a name="enable_awslogs"></a>

Si vous utilisez Fargate pour vos tâches, vous devez ajouter les paramètres `logConfiguration` requis à votre définition de tâche pour activer le pilote de journalisation `awslogs`. Pour de plus amples informations, veuillez consulter [Exemple de définition de tâche Amazon ECS : acheminer les journaux vers CloudWatch](specify-log-config.md).

Pour le conteneur Windows sur Fargate, effectuez l’une des options suivantes lorsque l’un des paramètres de définition de tâche comporte des caractères spéciaux tels que `& \ < > ^ |` :
+ Ajoutez un caractère d’échappement (`\`) avec des guillemets autour de la chaîne de paramètres entière

  Exemple

  ```
  "awslogs-multiline-pattern": "\"^[|DEBUG|INFO|WARNING|ERROR\"",
  ```
+ Ajoutez un caractère d’échappement (`^`) autour de chaque caractère spécial

  Exemple

  ```
  "awslogs-multiline-pattern": "^^[^|DEBUG^|INFO^|WARNING^|ERROR",
  ```

## EC2
<a name="ec2-considerations"></a>

Si vous utilisez le type de lancement EC2 pour vos tâches et que vous souhaitez activer le pilote de journalisation `awslogs`, vos instances de conteneur Amazon ECS nécessitent au moins la version 1.9.0 de l’agent de conteneur. Pour plus d'informations sur la vérification de la version de votre agent et la mise à jour à la dernière version, consultez [Mise à jour de l'agent de conteneur Amazon ECS](ecs-agent-update.md).

**Note**  
Vous devez utiliser une AMI optimisée pour Amazon ECS ou une AMI personnalisée avec au moins une version `1.9.0-1` du package `ecs-init`. Lorsque vous utilisez une AMI personnalisée, vous devez spécifier que le pilote de journalisation `awslogs` est disponible sur l’instance Amazon EC2 lorsque vous démarrez l’agent en utilisant la variable d’environnement suivante dans votre instruction **docker run** ou votre fichier de variables d’environnement.  

```
ECS_AVAILABLE_LOGGING_DRIVERS=["json-file","awslogs"]
```

Vos instances de conteneur Amazon ECS nécessitent également une autorisation `logs:CreateLogStream` et `logs:PutLogEvents` sur le rôle IAM avec lequel vous pouvez lancer vos instances de conteneur. Si vous avez créé votre rôle d'instance de conteneur Amazon ECS avant l'activation de la prise en charge du pilote du journal `awslogs` dans Amazon ECS, vous devrez sans doute ajouter ces autorisations. `ecsTaskExecutionRole` est utilisé lorsqu'il est affecté à la tâche et contient probablement les autorisations appropriées. Pour plus d’informations sur le rôle d’exécution de tâche, consultez la section [Rôle IAM d'exécution de tâche Amazon ECS](task_execution_IAM_role.md). Si vos instances de conteneur utilisent la politique IAM gérée pour les instances de conteneur, vos instances de conteneur disposent probablement des autorisations appropriées. Pour obtenir des informations sur la politique IAM gérée pour les instances de conteneur, consultez la section [Rôle IAM d'instance de conteneur Amazon ECS](instance_IAM_role.md).

# Exemple de définition de tâche Amazon ECS : acheminer les journaux vers CloudWatch
<a name="specify-log-config"></a>

Avant que vos conteneurs puissent envoyer des journaux CloudWatch, vous devez spécifier le pilote de `awslogs` journal pour les conteneurs dans votre définition de tâche. Pour plus d’informations sur les paramètres de journalisation, consultez la section [Stockage et journalisation](task_definition_parameters.md#container_definition_storage).

La définition de tâche JSON qui suit possède un objet `logConfiguration` spécifié pour chaque conteneur. L'un concerne le WordPress conteneur qui envoie les journaux à un groupe de journaux appelé`awslogs-wordpress`. L'autre concerne un conteneur MySQL qui envoie des journaux à un groupe de journaux appelé `awslogs-mysql`. Les deux conteneurs utilisent le préfixe de flux de journal `awslogs-example`.

```
{
    "containerDefinitions": [
        {
            "name": "wordpress",
            "links": [
                "mysql"
            ],
            "image": "public.ecr.aws/docker/library/wordpress:latest",
            "essential": true,
            "portMappings": [
                {
                    "containerPort": 80,
                    "hostPort": 80
                }
            ],
            "logConfiguration": {
                "logDriver": "awslogs",
                "options": {
                    "awslogs-create-group": "true",
                    "awslogs-group": "awslogs-wordpress",
                    "awslogs-region": "us-west-2",
                    "awslogs-stream-prefix": "awslogs-example"
                }
            },
            "memory": 500,
            "cpu": 10
        },
        {
            "environment": [
                {
                    "name": "MYSQL_ROOT_PASSWORD",
                    "value": "password"
                }
            ],
            "name": "mysql",
            "image": "public.ecr.aws/docker/library/mysql:latest",
            "cpu": 10,
            "memory": 500,
            "essential": true,
            "logConfiguration": {
                "logDriver": "awslogs",
                "options": {
                    "awslogs-create-group": "true",
                    "awslogs-group": "awslogs-mysql",
                    "awslogs-region": "us-west-2",
                    "awslogs-stream-prefix": "awslogs-example",
                    "mode": "non-blocking", 
                    "max-buffer-size": "25m" 
                }
            }
        }
    ],
    "family": "awslogs-example"
}
```

## Étapes suivantes
<a name="specify-log-config-next-steps"></a>
+ Vous pouvez éventuellement définir une politique de rétention pour le groupe de journaux à l'aide de l'API CloudWatch AWS CLI or. Pour plus d'informations, consultez [put-retention-policy](https://docs.aws.amazon.com/cli/latest/reference/logs/put-retention-policy.html) dans la *référence AWS Command Line Interface *.
+ Après avoir enregistré une définition de tâche avec le pilote de `awslogs` journal dans une configuration de journal de définition de conteneur, vous pouvez exécuter une tâche ou créer un service avec cette définition de tâche pour commencer à envoyer des CloudWatch journaux à Logs. Pour plus d’informations, consultez [Exécution d’une application en tant que tâche Amazon ECS](standalone-task-create.md) et [Création d’un déploiement de mise à jour propagée Amazon ECS](create-service-console-v2.md).