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 journaux Amazon EMR à l'aide d'Amazon Athena en intégration avec Data Catalog. AWS Glue 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 journal Amazon EMR 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 DDL (Amazon Athena Data Definition Language) sur l'emplacement des journaux Amazon EMR Amazon S3 afin de créer des tables pour les journaux de cluster et une liste des problèmes connus.
-
Exécute des requêtes DML (Data Manipulation Language) pour rechercher des modèles de problèmes connus dans les journaux Amazon EMR. 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éfixe
saw_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 journaux Amazon EMR à l'aide d'Amazon Athena afin de détecter les erreurs et de 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 du journal du cluster Amazon EMR à 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 nécessaire pour continuer en demandant l'approbation des responsables IAM désignés avant d'exécuter 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 journaux Amazon EMR. 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 requêtes Amazon Athena DML.
-
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 rôle IAM qui fait confiance au service SSM. 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 :
-
Naviguez AWSSupport-DiagnoseEMRLogsWithAthena
dans la AWS Systems Manager section Documents. -
Sélectionnez Execute automation (Exécuter l'automatisation).
-
Pour les paramètres d'entrée, entrez ce qui suit :
-
AutomationAssumeRole (Facultatif) :
Amazon Resource Name (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'ID du cluster Amazon EMR.
-
S3 LogLocation (facultatif) :
L'emplacement du journal Amazon EMR d'Amazon S3. Entrez l'URL de type PATH où se trouve Amazon S3, par exemple :.
s3://amzn-s3-demo-bucket/myfolder/j-1K48XXXXXXHCB/
Fournissez ce paramètre si le cluster Amazon EMR a été résilié pendant plus de30
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 cluster Amazon EMR.
-
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, ARN de rôle IAM, ARN de rôle IAM ou ARN de rôle IAM assume. Le nombre maximum d'approbateurs est de 10.
-
FetchNodeLogsOnly (Facultatif) :
Si ce paramètre est défini sur
true
, l'automatisation diagnostique les journaux des conteneurs d'applications Amazon EMR. La valeur par défaut estfalse
. -
FetchContainersLogsOnly(Facultatif) :
Si ce paramètre est défini sur
true
, l'automatisation diagnostique les journaux des conteneurs Amazon EMR. La valeur par défaut estfalse
. -
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 dans le 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 de30
jours. La valeur par défaut est1
. -
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.
-
-
Sélectionnez Exécuter.
-
L'automatisation démarre.
-
Le document exécute les étapes suivantes :
-
getLogLocation:
Récupère l'emplacement du journal Amazon S3 en interrogeant l'ID de cluster Amazon EMR spécifié. Si l'automatisation n'est pas en mesure de demander l'emplacement du journal à partir de l'ID du cluster Amazon EMR, le runbook utilise le
S3LogLocation
paramètre d'entrée. -
branchOnValidJournal :
Vérifie l'emplacement des journaux Amazon EMR. 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 Amazon EMR.
-
estimateAthenaCosts:
Détermine la taille des journaux Amazon EMR et fournit une estimation du coût d'exécution des scans Athena sur le jeu de données des 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.
-
Approuver l'automatisation :
Attend l'approbation des responsables IAM désignés pour passer aux prochaines étapes de l'automatisation. La notification d'approbation contient le coût estimé du scan Amazon Athena sur les journaux Amazon EMR, ainsi que des informations 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 requête Amazon Athena DML recherche les erreurs et les exceptions dans les journaux des clusters Amazon EMR. -
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ée
SUCCEEDED
. La requête Amazon Athena DML analyse les résultats de la requête DML précédente. 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ée
SUCCEEDED
. La requête Amazon Athena DML analyse les résultats de la requête DML précédente. 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 requêtes Amazon Athena DML.
-
Ressources de nettoyage :
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 bucket de logs Amazon EMR.
-
-
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 de la requête Athena :
-
Liste de toutes les erreurs et exceptions fréquemment survenues dans les journaux du cluster Amazon EMR, ainsi que les emplacements des journaux correspondants (préfixe Amazon S3).
-
Résumé des exceptions connues uniques figurant dans les journaux Amazon EMR, ainsi que des résolutions recommandées et des articles du 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 permettre un diagnostic plus approfondi.
-
Références
Systems Manager Automation
AWS documentation de service
-
Reportez-vous à la section Dépannage des clusters Amazon EMR pour plus d'informations