AWSSupport-DiagnoseEMRLogsWithAthena - 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-DiagnoseEMRLogsWithAthena

Description

Le AWSSupport-DiagnoseEMRLogsWithAthena runbook permet de diagnostiquer les EMR journaux Amazon à l'aide d'Amazon Athena en intégration AWS Glue avec Data Catalog. Amazon Athena est utilisé pour interroger les fichiers journaux Amazon EMR pour les conteneurs, les journaux des nœuds, ou les deux, avec des paramètres facultatifs pour des plages de dates spécifiques ou des recherches basées sur des mots clés.

Le runbook peut récupérer automatiquement l'emplacement du EMR journal Amazon pour un cluster existant, ou vous pouvez spécifier l'emplacement du journal Amazon S3. Pour analyser les journaux, le runbook :

  • Crée une AWS Glue base de données et exécute des requêtes Amazon Athena Data Definition Language DDL () sur l'emplacement des journaux Amazon Amazon EMR S3 afin de créer des tables pour les journaux du cluster et une liste des problèmes connus.

  • Exécute des requêtes Data Manipulation Language (DML) pour rechercher des modèles de problèmes connus dans les EMR journaux Amazon. Les requêtes renvoient une liste des problèmes détectés, leur nombre d'occurrences et le nombre de mots clés correspondants par chemin de fichier Amazon S3.

  • Les résultats sont chargés dans un compartiment Amazon S3 que vous spécifiez sous le préfixesaw_diagnose_EMR_known_issues.

  • Le runbook renvoie les résultats des requêtes Amazon Athena, en mettant en évidence les conclusions, les recommandations et les références aux articles du Amazon Knowledge Center (KC) issus d'un sous-ensemble prédéfini.

  • En cas d'achèvement ou d'échec, la AWS Glue base de données et les fichiers relatifs aux problèmes connus chargés dans le compartiment Amazon S3 sont supprimés.

Comment fonctionne-t-il ?

Analyser AWSSupport-DiagnoseEMRLogsWithAthena les EMR journaux Amazon à l'aide d'Amazon Athena pour détecter les erreurs et mettre en évidence les résultats, les recommandations et les articles pertinents du centre de connaissances.

Le runbook exécute les étapes suivantes :

  • Obtenez l'emplacement EMR du journal du cluster Amazon à l'aide de l'ID du cluster ou saisissez l'emplacement Amazon S3 pour récupérer l'emplacement et la taille du journal.

  • Fournissez une estimation des coûts d'Athéna en fonction de la taille de l'emplacement du journal.

  • Obtenez l'approbation pour continuer en demandant l'approbation des IAM responsables désignés avant de lancer des requêtes Athena et de passer aux étapes suivantes.

  • Chargez les problèmes connus dans le compartiment Amazon S3 spécifié, puis créez une AWS Glue base de données et des tables.

  • Exécutez des requêtes Athena sur les données des EMR journaux Amazon. Les requêtes peuvent effectuer une recherche par plage de dates, par mots clés, selon les deux critères, ou être exécutées sans filtres en fonction des entrées fournies.

  • Analysez les résultats pour mettre en évidence les conclusions, les recommandations et les articles pertinents du KC.

  • Liens de sortie pour les résultats des DML requêtes Amazon Athena.

  • Nettoyez l'environnement en supprimant la base de données créée, les tables et les problèmes connus téléchargés.

Type de document

 Automatisation

Propriétaire

Amazon

Plateformes

/

Le AutomationAssumeRole paramètre nécessite les actions suivantes pour utiliser correctement le runbook :

  • Athéna : GetQueryExecution

  • Athéna : StartQueryExecution

  • Athéna : GetPreparedStatement

  • Athéna : CreatePreparedStatement

  • colle : GetDatabase

  • colle : CreateDatabase

  • colle : DeleteDatabase

  • colle : CreateTable

  • colle : GetTable

  • colle : DeleteTable

  • ElasticMapReduce : DescribeCluster

  • s3 : ListBucket

  • s3 : GetBucketVersioning

  • s3 : ListBucketVersions

  • s3 : GetBucketPublicAccessBlock

  • s3 : GetBucketPolicyStatus

  • s3 : GetObject

  • s3 : GetBucketLocation

  • tarification : GetProducts

  • tarification : GetAttributeValues

  • tarification : DescribeServices

  • tarification : ListPriceLists

Important

Pour restreindre l'accès aux seules ressources nécessaires à cette automatisation, associez la politique suivante au IAM rôle qui fait confiance au SSM Service. Remplacez la partition, la région et le compte par les valeurs appropriées pour la partition, la région et le numéro de compte sur lesquels le livre d'exécution est exécuté.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "elasticmapreduce:DescribeCluster", "glue:GetDatabase", "athena:GetQueryExecution", "athena:StartQueryExecution", "athena:GetPreparedStatement", "athena:CreatePreparedStatement", "s3:ListBucket", "s3:GetBucketVersioning", "s3:ListBucketVersions", "s3:GetBucketPublicAccessBlock", "s3:GetBucketPolicyStatus", "s3:GetObject", "s3:GetBucketLocation", "pricing:GetProducts", "pricing:GetAttributeValues", "pricing:DescribeServices", "pricing:ListPriceLists" ], "Resource": "*" }, { "Sid": "RestrictPutObjects", "Effect": "Allow", "Action": [ "s3:PutObject" ], "Resource": [ "arn:{Partition}:s3:::*/*/results/*", "arn:{partition}:s3:::*/*/saw_diagnose_emr_known_issues/*" ] }, { "Sid": "RestrictDeleteAccess", "Effect": "Allow", "Action": [ "s3:DeleteObject", "s3:DeleteObjectVersion" ], "Resource": [ "arn:{Partition}:s3:::*/*/saw_diagnose_emr_known_issues/*" ] }, { "Effect": "Allow", "Action": [ "glue:GetDatabase", "glue:CreateDatabase", "glue:DeleteDatabase" ], "Resource": [ "arn:{Partition}:glue:{Region}:{Account}:database/saw_diagnose_emr_database_*", "arn:{Partition}:glue:{Region}:{Account}:table/saw_diagnose_emr_database_*/*", "arn:{Partition}:glue:{Region}:{Account}:userDefinedFunction/saw_diagnose_emr_database_*/*", "arn:{Partition}:glue:{Region}:{Account}:catalog" ] }, { "Effect": "Allow", "Action": [ "glue:CreateTable", "glue:GetTable", "glue:DeleteTable" ], "Resource": [ "arn:{Partition}:glue:{Region}:{Account}:table/saw_diagnose_emr_database_*/saw_diagnose_emr_known_issues", "arn:{Partition}:glue:{Region}:{Account}:table/saw_diagnose_emr_database_*/saw_diagnose_emr_logs_table", "arn:{Partition}:glue:{Region}:{Account}:table/saw_diagnose_emr_database_*/j_*", "arn:{Partition}:glue:{Region}:{Account}:database/saw_diagnose_emr_database_*", "arn:{Partition}:glue:{Region}:{Account}:catalog" ] } ] }

Instructions

Pour configurer l'automatisation, procédez comme suit :

  1. Naviguez sur AWSSupport-D iagnoseEMRLogs WithAthena dans la AWS Systems Manager section Documents.

  2. Sélectionnez Execute automation (Exécuter l'automatisation).

  3. Pour les paramètres d'entrée, entrez ce qui suit :

    • AutomationAssumeRole (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 (obligatoire) :

      L'identifiant EMR du cluster Amazon.

    • S3 LogLocation (facultatif) :

      Emplacement du EMR journal Amazon S3 Amazon. Entrez l'emplacement URL Amazon S3 de type Path, par exemple :. s3://amzn-s3-demo-bucket/myfolder/j-1K48XXXXXXHCB/ Fournissez ce paramètre si le EMR cluster Amazon a été résilié pendant plus de 30 jours.

    • S3 BucketName (obligatoire) :

      Le nom du compartiment Amazon S3 pour télécharger la liste des problèmes connus et le résultat des requêtes Amazon Athena. Le compartiment doit avoir activé le blocage de l'accès public et se trouver dans la même AWS région et sur le même compte que le EMR cluster Amazon.

    • Approbateurs (obligatoire) :

      La liste des principaux AWS authentifiés qui sont en mesure d'approuver ou de rejeter l'action. Vous pouvez spécifier des principes en utilisant l'un des formats suivants : nom d'utilisateur, utilisateur ARNARN, IAM rôle ou rôle ARN d'IAMassumer. Le nombre maximum d'approbateurs est de 10.

    • FetchNodeLogsOnly (Facultatif) :

      S'il est défini surtrue, l'automatisation diagnostique les journaux des conteneurs EMR d'applications Amazon. La valeur par défaut est false.

    • FetchContainersLogsOnly(Facultatif) :

      S'il est défini surtrue, l'automatisation diagnostique les journaux EMR des conteneurs Amazon. La valeur par défaut est false.

    • EndSearchDate (Facultatif) :

      Date de fin des recherches dans les journaux. S'il est fourni, l'automatisation recherchera exclusivement les journaux générés jusqu'à la date spécifiée au format YYYY -MM-DD (par exemple :). 2024-12-30

    • DaysToCheck (Facultatif) :

      Lorsqu'il EndSearchDate est fourni, ce paramètre est nécessaire pour déterminer le nombre de jours nécessaires pour rechercher rétrospectivement les journaux à partir de la valeur spécifiée. EndSearchDate La valeur maximale est de 30 jours. La valeur par défaut est 1.

    • SearchKeywords (Facultatif) :

      Liste des mots clés à rechercher dans les journaux, séparés par des virgules. Les mots clés ne peuvent pas contenir de guillemets simples ou doubles.

    Input parameters form for AWS Systems Manager Automation with various fields and options.
  4. Sélectionnez Exécuter.

  5. L'automatisation démarre.

  6. Le document exécute les étapes suivantes :

    • getLogLocation:

      Récupère l'emplacement du journal Amazon S3 en interrogeant l'identifiant de EMR cluster Amazon spécifié. Si l'automatisation n'est pas en mesure de demander l'emplacement du journal à partir de l'ID du EMR cluster Amazon, le runbook utilise le paramètre S3LogLocation d'entrée.

    • branchOnValidJournal :

      Vérifie l'emplacement EMR des journaux Amazon. Si l'emplacement est valide, procédez à l'estimation des coûts potentiels d'Amazon Athena lors de l'exécution de requêtes sur les journaux AmazonEMR.

    • estimateAthenaCosts:

      Détermine la taille des EMR journaux Amazon et fournit une estimation du coût d'exécution des scans Athena sur le jeu de données de journaux. Pour les régions non commerciales (non AWS partitionnées), cette étape fournit simplement la taille du journal sans estimer les coûts. Les coûts peuvent être calculés à l'aide de la documentation tarifaire d'Athena dans la région spécifiée.

    • approveAutomation:

      Attend l'approbation IAM des responsables désignés pour passer aux prochaines étapes de l'automatisation. La notification d'approbation contient le coût estimé du scan d'Amazon Athena sur les EMR journaux Amazon et des détails sur les ressources mises en service par l'automatisation.

    • uploadKnownIssuesExecuteAthenaQueries:

      Télécharge les problèmes connus prédéfinis dans le compartiment Amazon S3 spécifié dans le S3BucketName paramètre. Crée une AWS Glue base de données et des tables. Exécute les requêtes Amazon Athena dans AWS Glue la base de données en fonction des paramètres d'entrée.

    • getQueryExecutionÉtat :

      Attend que l'exécution de la requête Amazon Athena soit SUCCEEDED terminée. La DML requête Amazon Athena recherche les erreurs et les exceptions dans les journaux des EMR clusters Amazon.

    • analyzeAthenaResults:

      Analyse les résultats d'Amazon Athena pour fournir des conclusions, des recommandations et des articles du Knowledge Center (KC) issus d'un ensemble prédéfini de mappages.

    • getAnalyzeResultsRequête 1 ExecutionStatus :

      Attend que l'exécution de la requête soit terminéeSUCCEEDED. La DML requête Amazon Athena analyse les résultats de la requête précédenteDML. Cette requête d'analyse renverra des exceptions correspondantes avec des résolutions et des articles KC

    • getAnalyzeResultsRequête 2 ExecutionStatus :

      Attend que l'exécution de la requête soit terminéeSUCCEEDED. La DML requête Amazon Athena analyse les résultats de la requête précédenteDML. Cette requête d'analyse renverra une liste des exceptions/erreurs détectées dans chaque chemin de journal Amazon S3.

    • printAthenaQueriesUn message :

      Imprime des liens vers les résultats des DML requêtes Amazon Athena.

    • cleanupResources:

      Nettoie les ressources en supprimant la AWS Glue base de données créée et en supprimant les fichiers de problèmes connus créés dans le compartiment Amazon EMR Logs.

  7. Une fois terminé, consultez la section Sorties pour obtenir les résultats détaillés de l'exécution :

    La sortie fournit trois liens vers les résultats des requêtes Athena :

    • Liste de toutes les erreurs et exceptions fréquemment survenues dans les journaux du EMR cluster Amazon, ainsi que les emplacements des journaux correspondants (préfixe Amazon S3).

    • Résumé des exceptions connues uniques répertoriées dans les EMR journaux Amazon, ainsi que des résolutions recommandées et des articles KC pour vous aider à résoudre les problèmes.

    • Informations sur les endroits où des erreurs et des exceptions spécifiques apparaissent dans les chemins des journaux Amazon S3, afin de faciliter le diagnostic.

    Output section showing query links for exception summaries and analysis in AWS logs.

Références

Systems Manager Automation

AWS documentation de service