

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.

# Stockage des journaux
<a name="logging"></a>

Pour suivre l'avancement de vos tâches sur EMR Serverless et résoudre les problèmes d'échec, choisissez la manière dont EMR Serverless stocke et diffuse les journaux des applications. Lorsque vous soumettez une exécution de tâche, spécifiez le stockage géré, Amazon S3 et Amazon CloudWatch comme options de journalisation.

Avec CloudWatch, spécifiez les types de journaux et les emplacements des journaux que vous souhaitez utiliser, ou acceptez les types et emplacements par défaut. Pour plus d'informations sur CloudWatch les journaux, reportez-vous à[Journalisation pour EMR sans serveur avec Amazon CloudWatch](#jobs-log-storage-cw). En ce qui concerne le stockage géré et la journalisation S3, le tableau suivant répertorie les emplacements des journaux et la disponibilité de l'interface utilisateur auxquels vous pouvez vous attendre si vous choisissez le [stockage géré](#jobs-log-storage-managed-storage), les [compartiments Amazon S3](#jobs-log-storage-s3-buckets) ou les deux.


| Option | Journaux d'événements | Journaux de conteneurs | Interface utilisateur de l'application | 
| --- | --- | --- | --- | 
|  Stockage géré  |  Stocké dans un espace de stockage géré  |  Stocké dans un espace de stockage géré  |  Pris en charge  | 
|  Stockage géré et compartiment S3  |  Stocké aux deux endroits  |  Stocké dans un compartiment S3  |  Pris en charge  | 
|  Compartiment Amazon S3  |  Stocké dans un compartiment S3  |  Stocké dans un compartiment S3  |  Non pris en charge 1  | 

1 Nous vous conseillons de conserver l'option **Stockage géré** sélectionnée. Dans le cas contraire, vous ne pouvez pas utiliser l'application intégrée UIs.

## Journalisation pour EMR sans serveur avec stockage géré
<a name="jobs-log-storage-managed-storage"></a>

Par défaut, EMR Serverless stocke les journaux des applications en toute sécurité dans le stockage géré par Amazon EMR pendant une durée maximale de 30 jours.

**Note**  
Si vous désactivez l'option par défaut, Amazon EMR ne pourra pas résoudre les problèmes liés à vos tâches en votre nom. Exemple : vous ne pouvez pas accéder à Spark-UI depuis la console EMR Serverless.

Pour désactiver cette option dans EMR Studio, décochez la case **Autoriser AWS à conserver les journaux pendant 30 jours** dans la section **Paramètres supplémentaires** de la page **Soumettre** la tâche. 

Pour désactiver cette option depuis le AWS CLI, utilisez la `managedPersistenceMonitoringConfiguration` configuration lorsque vous soumettez une exécution de tâche.

```
{
    "monitoringConfiguration": {
        "managedPersistenceMonitoringConfiguration": {
            "enabled": false
        }
    }
}
```

Si votre application EMR Serverless se trouve dans un sous-réseau privé avec des points de terminaison VPC pour Amazon S3 et que vous attachez une politique de point de terminaison pour contrôler l'accès, ajoutez les autorisations suivantes pour qu'EMR Serverless stocke et diffuse les journaux des applications. `Resource`Remplacez-les par les `AppInfo` compartiments du tableau des régions disponibles dans [Exemples de politiques pour les sous-réseaux privés qui accèdent à Amazon S3](https://docs.aws.amazon.com/emr/latest/ManagementGuide/private-subnet-iampolicy.html#private-subnet-iampolicy-regions).

------
#### [ JSON ]

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Sid": "EMRServerlessManagedLogging",
      "Effect": "Allow",
      "Action": [
        "s3:PutObject",
        "s3:PutObjectAcl"
      ],
      "Resource": [
        "arn:aws:s3:::prod.us-east-1.appinfo.src",
        "arn:aws:s3:::prod.us-east-1.appinfo.src/*"
      ],
      "Condition": {
        "StringEquals": {
          "aws:PrincipalServiceName": "emr-serverless.amazonaws.com",
          "aws:SourceVpc": "vpc-12345678"
        }
      }
    }
  ]
}
```

------

En outre, utilisez la clé de `aws:SourceVpc` condition pour vous assurer que la demande transite par le VPC auquel le point de terminaison du VPC est attaché.

## Journalisation pour EMR sans serveur avec des compartiments Amazon S3
<a name="jobs-log-storage-s3-buckets"></a>

Avant que vos tâches puissent envoyer des données de journal à Amazon S3, incluez les autorisations suivantes dans la politique d'autorisation pour le rôle d'exécution des tâches. `amzn-s3-demo-logging-bucket`Remplacez-le par le nom de votre bucket de journalisation.

------
#### [ JSON ]

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Allow",
      "Action": [
        "s3:PutObject"
      ],
      "Resource": [
        "arn:aws:s3:::amzn-s3-demo-bucket/*"
      ],
      "Sid": "AllowS3Putobject"
    }
  ]
}
```

------

Pour configurer un compartiment Amazon S3 afin de stocker les journaux provenant du AWS CLI, utilisez la `s3MonitoringConfiguration` configuration lorsque vous lancez une tâche. Pour ce faire, fournissez les éléments suivants `--configuration-overrides` dans la configuration. 

```
{
    "monitoringConfiguration": {
        "s3MonitoringConfiguration": {
            "logUri": "s3://amzn-s3-demo-logging-bucket/logs/"
        }
    }
}
```

Pour les tâches par lots pour lesquelles aucune nouvelle tentative n'est activée, EMR Serverless envoie les journaux au chemin suivant :

```
'/applications/<applicationId>/jobs/<jobId>'
```

Les journaux du pilote Spark sont stockés dans le chemin suivant par EMR Serverless

```
'/applications/<applicationId>/jobs/<jobId>/SPARK_DRIVER/'
```

Les journaux de l'exécuteur Spark sont stockés dans le chemin suivant par EMR Serverless

```
'/applications/<applicationId>/jobs/<jobId>/SPARK_EXECUTOR/<EXECUTOR-ID>'
```

Le <EXECUTOR-ID>est un entier.

Les versions 7.1.0 et supérieures d'EMR Serverless prennent en charge les nouvelles tentatives pour les tâches de streaming et les tâches par lots. Si vous exécutez une tâche avec les nouvelles tentatives activées, EMR Serverless ajoute automatiquement un numéro de tentative au préfixe du chemin du journal, afin que vous puissiez mieux distinguer et suivre les journaux.

```
'/applications/<applicationId>/jobs/<jobId>/attempts/<attemptNumber>/'
```

## Journalisation pour EMR sans serveur avec Amazon CloudWatch
<a name="jobs-log-storage-cw"></a>

Lorsque vous soumettez une tâche à une application EMR Serverless, choisissez Amazon CloudWatch comme option pour stocker les journaux de votre candidature. Cela vous permet d'utiliser les fonctionnalités d'analyse des CloudWatch CloudWatch journaux telles que Logs Insights et Live Tail. Vous pouvez également diffuser des journaux depuis d'autres systèmes, par exemple CloudWatch à des OpenSearch fins d'analyse plus approfondie.

EMR Serverless fournit une journalisation en temps réel pour les journaux des conducteurs. Vous pouvez accéder aux journaux en temps réel grâce à la fonctionnalité CloudWatch Live Tail ou via les commandes de queue de la CloudWatch CLI.

Par défaut, la CloudWatch journalisation est désactivée pour EMR Serverless. Pour l'activer, utilisez la configuration dans[AWS CLI](#jobs-log-storage-cw-cli).

**Note**  
Amazon CloudWatch publie des journaux en temps réel, ce qui lui permet de mobiliser davantage de ressources de la part de ses employés. Si vous optez pour une faible capacité de travail, l'impact sur la durée d'exécution de votre travail peut augmenter. Si vous activez la CloudWatch journalisation, nous vous suggérons de choisir une capacité de travail supérieure. Il est également possible que la publication du journal soit ralentie si le taux de transactions par seconde (TPS) est trop faible pour. `PutLogEvents` La configuration CloudWatch de régulation est globale pour tous les services, y compris EMR Serverless. Pour plus d'informations, reportez-vous à [la section Comment déterminer la régulation dans mes CloudWatch journaux](https://repost.aws/knowledge-center/cloudwatch-logs-throttling) ? sur *AWS re:post*.

### Autorisations requises pour se connecter avec CloudWatch
<a name="jobs-log-storage-cw-permissions"></a>

Avant que vos tâches puissent envoyer des données de journal à Amazon CloudWatch, incluez les autorisations suivantes dans la politique d'autorisation pour le rôle d'exécution des tâches.

------
#### [ JSON ]

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Allow",
      "Action": [
        "logs:DescribeLogGroups"
      ],
      "Resource": [
        "arn:aws:logs:*:123456789012:*"
      ],
      "Sid": "AllowLOGSDescribeloggroups"
    },
    {
      "Effect": "Allow",
      "Action": [
        "logs:PutLogEvents",
        "logs:CreateLogGroup",
        "logs:CreateLogStream",
        "logs:DescribeLogStreams"
      ],
      "Resource": [
        "arn:aws:logs:*:123456789012:log-group:my-log-group-name:*"
      ],
      "Sid": "AllowLOGSPutlogevents"
    }
  ]
}
```

------

### AWS CLI
<a name="jobs-log-storage-cw-cli"></a>

Pour configurer Amazon CloudWatch afin qu'il stocke les journaux pour EMR Serverless à partir du AWS CLI, utilisez la `cloudWatchLoggingConfiguration` configuration lorsque vous lancez une tâche. Pour ce faire, fournissez les remplacements de configuration suivants. Vous pouvez également fournir un nom de groupe de journaux, un nom de préfixe de flux de journaux, des types de journaux et un ARN de clé de chiffrement.

Si vous ne spécifiez pas de valeurs facultatives, CloudWatch publie les journaux dans un groupe de journaux par défaut`/aws/emr-serverless`, avec le flux de journaux par défaut`/applications/applicationId/jobs/jobId/worker-type`.

Les versions 7.1.0 et supérieures d'EMR Serverless prennent en charge les nouvelles tentatives pour les tâches de streaming et les tâches par lots. Si vous avez activé les nouvelles tentatives pour une tâche, EMR Serverless ajoute automatiquement un numéro de tentative au préfixe du chemin du journal, afin que vous puissiez mieux distinguer et suivre les journaux. 

```
'/applications/<applicationId>/jobs/<jobId>/attempts/<attemptNumber>/worker-type'
```

Voici la configuration minimale requise pour activer la CloudWatch journalisation Amazon avec les paramètres par défaut pour EMR Serverless :

```
{
    "monitoringConfiguration": {
        "cloudWatchLoggingConfiguration": {
            "enabled": true
         }
     }
}
```

L'exemple suivant montre toutes les configurations obligatoires et facultatives qui spécifient le moment où vous activez la CloudWatch journalisation Amazon pour EMR Serverless. Les `logTypes` valeurs prises en charge sont également répertoriées dans l'exemple suivant.

```
{
    "monitoringConfiguration": {
        "cloudWatchLoggingConfiguration": {
            "enabled": true, // Required
            "logGroupName": "Example_logGroup", // Optional
            "logStreamNamePrefix": "Example_logStream", // Optional 
            "encryptionKeyArn": "key-arn", // Optional 
            "logTypes": { 
                "SPARK_DRIVER": ["stdout", "stderr"] //List of values
             }
         }
     }
}
```

Par défaut, EMR Serverless publie uniquement le pilote stdout et stderr vers lequel stderr se connecte. CloudWatch Si vous souhaitez d'autres journaux, spécifiez un rôle de conteneur et les types de journaux correspondants `logTypes` dans le champ.

La liste suivante indique les types de travailleurs pris en charge qui sont spécifiés pour la `logTypes` configuration :

**Spark**  
+ `SPARK_DRIVER : ["STDERR", "STDOUT"]`
+ `SPARK_EXECUTOR : ["STDERR", "STDOUT"]`

**Hive**  
+ `HIVE_DRIVER : ["STDERR", "STDOUT", "HIVE_LOG", "TEZ_AM"]`
+ `TEZ_TASK : ["STDERR", "STDOUT", "SYSTEM_LOGS"]`