AWSSupport-AnalyzeEMRLogs - AWS Systems Manager Guide de référence du manuel d'automatisation

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

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_out_of_memory — Le conteneur YARN n'a plus de mémoire, la tâche en cours d'exécution peut échouer.

  • yarn_nodemanager_health : le nœud CORE ou TASK manque d'espace disque et ne pourra pas exécuter de tâches.

  • node_state_change : le nœud CORE ou TASK n'est pas accessible par le nœud MASTER.

  • step_failure : une étape EMR a échoué.

  • no_core_nodes_running : aucun nœud CORE n'est actuellement en cours d'exécution, le cluster est défectueux.

  • hdfs_missing_blocks : Des blocs HDFS sont manquants, ce qui pourrait entraîner une perte de données.

  • hdfs_high_util : L'utilisation de HDFS est élevée, ce qui peut affecter les tâches et l'état du cluster.

  • instance_controller_restart : le processus Instance-Controller a redémarré. Ce processus est essentiel pour la santé du cluster.

  • instance_controller_restart_legacy : le processus Instance-Controller a redémarré. Ce processus est essentiel pour la santé du cluster.

  • high_load : 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_node_blacklisted : 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_node_lost : 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)

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 AWS Identity and Access Management (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 | Planifier | Supprimer le calendrier

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

  • IntervalTime

    Type : chaîne

    Valeurs valides : 5 minutes | 10 minutes | 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.

  • LogToCloudWatchJournaux

    Type : chaîne

    Valeurs valides : oui | 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 | non

    Description : (Facultatif) Si vous le spécifiezyes, 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.

  • CreateMetricFiltres

    Type : chaîne

    Valeurs valides : oui | 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- Rassemble les identifiants de toutes 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

GetClusterInformations. ClusterName

GetClusterInformations. ClusterState

ListingClusterInstances.InstanceID

CreatingScheduleCloudFormationEmpilez. StackStatus

RemovingScheduleByDeletingScheduleCloudFormationStack.StackStatus

CheckIfLogGroupExiste. Sortie

FindLogPatternOnMernode. CommandId