

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.

# `AWSSupport-AnalyzeEMRLogs`
<a name="automation-awssupport-analyzeemrlogs"></a>

 **Description** 

Ce runbook permet d'identifier les erreurs lors de l'exécution d'une tâche sur un cluster Amazon EMR. Le runbook analyse une liste de journaux définis sur le système de fichiers et recherche une liste de mots clés prédéfinis. Ces entrées de journal sont utilisées pour créer des CloudWatch événements Amazon Events afin que vous puissiez prendre les mesures nécessaires en fonction de ces événements. Le runbook publie éventuellement des entrées de journal dans le groupe de CloudWatch journaux Amazon Logs de votre choix. Ce runbook recherche actuellement les erreurs et modèles suivants dans les fichiers journaux :
+  container\$1out\$1of\$1memory — Le conteneur YARN n'a plus de mémoire, la tâche en cours d'exécution peut échouer. 
+  yarn\$1nodemanager\$1health : le nœud CORE ou TASK manque d'espace disque et ne pourra pas exécuter de tâches. 
+  node\$1state\$1change : le nœud CORE ou TASK n'est pas accessible par le nœud MASTER. 
+  step\$1failure : une étape EMR a échoué. 
+  no\$1core\$1nodes\$1running : aucun nœud CORE n'est actuellement en cours d'exécution, le cluster est défectueux. 
+  hdfs\$1missing\$1blocks : Des blocs HDFS sont manquants, ce qui pourrait entraîner une perte de données. 
+  hdfs\$1high\$1util : L'utilisation de HDFS est élevée, ce qui peut affecter les tâches et l'état du cluster. 
+  instance\$1controller\$1restart : le processus Instance-Controller a redémarré. Ce processus est essentiel pour la santé du cluster. 
+  instance\$1controller\$1restart\$1legacy : le processus Instance-Controller a redémarré. Ce processus est essentiel pour la santé du cluster. 
+  high\$1load : charge moyenne élevée détectée, susceptible d'affecter les rapports sur l'état des nœuds ou d'entraîner des délais ou des ralentissements. 
+  yarn\$1node\$1blacklisted : Le nœud CORE ou TASK a été mis sur liste noire par YARN pour l'empêcher d'exécuter des tâches. 
+  yarn\$1node\$1lost : Le nœud CORE ou TASK a été marqué comme PERDU par YARN, problèmes de connectivité possibles. 

 Les instances associées à celles `ClusterID` que vous spécifiez doivent être gérées par AWS Systems Manager. Vous pouvez exécuter cette automatisation une seule fois, planifier l'automatisation pour qu'elle s'exécute à un intervalle de temps spécifique ou supprimer une planification créée précédemment par une automatisation. Ce runbook prend en charge les versions 5.20 à 6.30 d'Amazon EMR. 

 [Exécuter cette automatisation (console)](https://console.aws.amazon.com/systems-manager/automation/execute/AWSSupport-AnalyzeEMRLogs) 

**Type de document**

 Automatisation

**Propriétaire**

Amazon

**Plateformes**

LinuxmacOS, Windows

**Paramètres**
+ AutomationAssumeRole

  Type : Chaîne

  Description : (Facultatif) Le nom de ressource Amazon (ARN) du rôle Gestion des identités et des accès AWS (IAM) qui permet à Systems Manager Automation d'effectuer les actions en votre nom. Si aucun rôle n'est spécifié, Systems Manager Automation utilise les autorisations de l'utilisateur qui lance ce runbook.
+ ClusterID

  Type : Chaîne

  Description : (Obligatoire) L'ID du cluster dont vous souhaitez analyser les logs des nœuds.
+ Opération

  Type : Chaîne

  Valeurs valides : Exécuter une fois \$1 Planifier \$1 Supprimer le calendrier 

  Description : (Obligatoire) Opération à effectuer sur le cluster.
+ IntervalTime

  Type : Chaîne

  Valeurs valides : 5 minutes \$1 10 minutes \$1 15 minutes

   Description : (Facultatif) Durée entre deux exécutions de l'automatisation. Ce paramètre n'est applicable que si vous `Schedule` le `Operation` spécifiez. 
+ LogToCloudWatchLogs

  Type : Chaîne

  Valeurs valides : oui \$1 non

   Description : (Facultatif) Si vous spécifiez `yes` la valeur de ce paramètre, l'automatisation crée un groupe de CloudWatch journaux avec le nom spécifié dans le `CloudWatchLogGroup` paramètre pour stocker toutes les entrées de journal correspondantes. 
+ CloudWatchLogGroup

  Type : Chaîne

   Description : (Facultatif) Nom du groupe de CloudWatch journaux dans lequel vous souhaitez stocker les entrées de journal correspondantes. Ce paramètre n'est applicable que si vous `yes` le `LogToCloudWatchLogs` spécifiez. 
+ CreateLogInsightsDashboard

  Type : Chaîne

  Valeurs valides : oui \$1 non

   Description : (Facultatif) Si vous le spécifiez`yes`, le tableau de CloudWatch bord est créé s'il n'existe pas déjà. Ce paramètre n'est applicable que si vous `yes` le `LogToCloudWatchLogs` spécifiez. 
+ CreateMetricFilters

  Type : Chaîne

  Valeurs valides : oui \$1 non

   Description : (Facultatif) Spécifiez `yes` si vous souhaitez créer des filtres métriques pour le groupe de CloudWatch journaux Logs. Ce paramètre n'est applicable que si vous `yes` le `LogToCloudWatchLogs` spécifiez. 

**Autorisations IAM requises**

Le `AutomationAssumeRole` paramètre nécessite les actions suivantes pour utiliser correctement le runbook.
+  `ssm:StartAutomationExecution` 
+  `ssm:GetDocument` 
+  `ssm:ListDocuments` 
+  `ssm:DescribeAutomationExecutions` 
+  `ssm:DescribeAutomationStepExecutions` 
+  `ssm:GetAutomationExecution` 
+  `ssm:DescribeInstanceInformation` 
+  `ssm:ListCommandInvocations` 
+  `ssm:ListCommands` 
+  `ssm:SendCommand` 
+  `iam:CreateRole` 
+  `iam:DeleteRole` 
+  `iam:GetRolePolicy` 
+  `iam:PutRolePolicy` 
+  `iam:DeleteRolePolicy` 
+  `iam:passrole` 
+  `cloudformation:DescribeStacks` 
+  `cloudformation:DeleteStack` 
+  `cloudformation:CreateStack` 
+  `events:DeleteRule` 
+  `events:RemoveTargets` 
+  `events:PutTargets` 
+  `events:PutRule` 
+  `events:DescribeRule` 
+  `logs:DescribeLogGroups` 
+  `logs:CreateLogGroup` 
+  `logs:PutMetricFilter` 
+  `cloudwatch:PutDashboard` 
+  `elasticmapreduce:ListInstances` 
+  `elasticmapreduce:DescribeCluster` 

 **Étapes de document** 
+  `aws:executeAwsApi`- Recueille des informations sur le cluster Amazon EMR spécifié dans `ClusterID` le paramètre. 
+  `aws:branch`- Branches basées sur les entrées. 
  +  Si l'opération proposée est `Run Once` ou `Schedule` : 
    +  `aws:assertAwsResourceProperty`- Vérifie que le cluster est disponible. 
    +  `aws:executeAwsApi`- Regroupe toutes IDs les instances exécutées dans le cluster. 
    +  `aws:assertAwsResourceProperty`- Vérifie que l'agent SSM est en cours d'exécution sur toutes les instances du cluster. 
    +  `aws:branch`- Branches selon que vous avez spécifié d'exécuter l'automatisation une fois ou selon un calendrier. 
      +  Si l'opération proposée est `Run Once` : 
        +  `aws:branch`- Branches basées sur la valeur spécifiée dans le `LogToCloudWatchLogs` paramètre. 
          +  Si `LogToCloudWatchLogs` la valeur est `yes` : 
            +  `aws:executeScript`- Vérifie si un groupe de CloudWatch journaux avec le nom spécifié en paramètre existe `CloudWatchLogGroup` déjà. Dans le cas contraire, le groupe est créé avec le nom spécifié. 
            +  `aws:branch`- Branches basées sur la valeur spécifiée dans le `CreateMetricFilters` paramètre. 
              +  Si `CreateMetricFilters` la valeur est `yes` : 
                +  `aws:executeAwsApi`- 12 étapes sont exécutées pour chaque filtre métrique 
                +  `aws:branch`- Branches basées sur la valeur spécifiée dans le `CreateLogInsightsDashboard` paramètre. 
                  +  Si `CreateLogInsightsDashboard` la valeur est `yes` : 
                    +  `aws:executeAwsApi`- Crée un CloudWatch tableau de bord portant le même nom que celui indiqué dans le `CloudWatchLogGroup` paramètre, s'il n'existe pas déjà. 
                  +  Si `CreateLogInsightsDashboard` la valeur est `no` : 
                    +  `aws:runCommand`- Exécute un script shell pour rechercher des modèles de journalisation sur chaque instance du cluster. 
              +  Si `CreateMetricFilters` la valeur est `no` : 
                +  `aws:branch`- Branches basées sur la valeur spécifiée dans le `CreateLogInsightsDashboard` paramètre. 
                  +  Si `CreateLogInsightsDashboard` la valeur est `yes` : 
                    +  `aws:executeAwsApi`- Crée un CloudWatch tableau de bord portant le même nom que celui indiqué dans le `CloudWatchLogGroup` paramètre, s'il n'existe pas déjà. 
                  +  Si `CreateLogInsightsDashboard` la valeur est `no` : 
                    +  `aws:runCommand`- Exécute un script shell pour rechercher des modèles de journalisation sur chaque instance du cluster. 
          +  Si `LogToCloudWatchLogs` la valeur est `no` : 
            +  `aws:executeAwsApi`- Exécute un script shell pour rechercher des modèles de journalisation sur chaque instance du cluster. 
      +  Si l'opération proposée est `Schedule` : 
        +  `aws:createStack`- Crée un EventBridge événement Amazon qui cible ce runbook. 
  +  Si l'opération proposée est `Remove Schedule` : 
    +  `aws:executeAwsApi`- Vérifie qu'un planning existe pour le cluster. 
    +  `aws:deleteStack`- Supprime le planning. 

 **Sorties** 

GetClusterInformation.ClusterName

GetClusterInformation.ClusterState

ListingClusterInstances.Instance IDs

CreatingScheduleCloudFormationStack.StackStatus

RemovingScheduleByDeletingScheduleCloudFormationStack.StackStatus

CheckIfLogGroupExists.sortie

FindLogPatternOnEMRNode.CommandId