AWSSupport-AnalyzeEMRLogs - AWS Systems Manager 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 EMR cluster Amazon. 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 YARN conteneur n'a plus de mémoire, la tâche en cours d'exécution peut échouer.

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

  • node_state_change : CORE ou le TASK nœud est inaccessible par le nœud. MASTER

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

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

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

  • hdfs_high_util : L'HDFSutilisation est élevée, ce qui peut affecter les tâches et la santé 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 : CORE ou le TASK nœud a été mis sur liste noire par des tâches en cours d'exécution. YARN

  • yarn_node_lost : CORE ou le TASK nœud a été marqué comme LOST par, problèmes de connectivité possibles. YARN

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 est compatible avec les EMR versions 5.20 à 6.30 d'Amazon.

Exécuter cette automatisation (console)

Type de document

 Automatisation

Propriétaire

Amazon

Plateformes

Linux, macOS, Windows

Paramètres

  • AutomationAssumeRole

    Type : String

    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 : String

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

  • Opération

    Type : String

    Valeurs valides : Exécuter une fois | Planifier | Supprimer le calendrier

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

  • IntervalTime

    Type : String

    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.

  • LogToCloudWatchLogs

    Type : String

    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 : String

    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 : String

    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.

  • CreateMetricFilters

    Type : String

    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.

IAMAutorisations 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 EMR cluster Amazon spécifié dans le ClusterID 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'SSMagent 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

ListingClusterInstancesI. nstanceIDs

CreatingScheduleCloudFormationStack.StackStatus

RemovingScheduleByDeletingScheduleCloudFormationStack.StackStatus

CheckIfLogGroupExists.sortie

FindLogPatternOnEMRNode.CommandId