AWSSupport-DiagnoseEMRLogsWithAthena - AWS Systems Manager Riferimento al runbook di automazione

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

AWSSupport-DiagnoseEMRLogsWithAthena

Descrizione

Il AWSSupport-DiagnoseEMRLogsWithAthena runbook aiuta a diagnosticare i log di Amazon EMR utilizzando Amazon Athena in integrazione con Data Catalog. AWS Glue Amazon Athena viene utilizzato per interrogare i file di log di Amazon EMR per contenitori, log dei nodi o entrambi, con parametri opzionali per intervalli di date specifici o ricerche basate su parole chiave.

Il runbook può recuperare automaticamente la posizione di log di Amazon EMR per un cluster esistente oppure puoi specificare la posizione di log di Amazon S3. Per analizzare i log, il runbook:

  • Crea un AWS Glue database ed esegue query Amazon Athena Data Definition Language (DDL) sulla posizione di log Amazon EMR Amazon S3 per creare tabelle per i log del cluster e un elenco di problemi noti.

  • Esegue query DML (Data Manipulation Language) per cercare modelli di problemi noti nei log di Amazon EMR. Le query restituiscono un elenco di problemi rilevati, il relativo numero di occorrenze e il numero di parole chiave corrispondenti in base al percorso del file Amazon S3.

  • I risultati vengono caricati in un bucket Amazon S3 specificato sotto il prefisso. saw_diagnose_EMR_known_issues

  • Il runbook restituisce i risultati delle query di Amazon Athena, evidenziando risultati, consigli e riferimenti agli articoli di Amazon Knowledge Center (KC) provenienti da un sottoinsieme predefinito.

  • In caso di completamento o errore, il AWS Glue database e i file dei problemi noti caricati nel bucket Amazon S3 vengono eliminati.

Come funziona?

AWSSupport-DiagnoseEMRLogsWithAthenaEsegui l'analisi dei log di Amazon EMR utilizzando Amazon Athena per rilevare errori ed evidenziare risultati, consigli e articoli pertinenti del Knowledge Center.

Il runbook esegue i seguenti passaggi:

  • Ottieni la posizione del log del cluster Amazon EMR utilizzando l'ID del cluster o inserisci la posizione Amazon S3 per recuperare la posizione e le dimensioni del log.

  • Fornisci una stima dei costi di Athena in base alla dimensione della posizione del registro.

  • Ottieni l'approvazione per procedere richiedendo l'approvazione ai responsabili IAM designati prima di eseguire le query Athena e continuare con i passaggi successivi.

  • Carica i problemi noti nel bucket Amazon S3 specificato, crea un AWS Glue database e tabelle.

  • Esegui le query Athena sui dati dei log di Amazon EMR. Le query possono essere eseguite per intervallo di date, parole chiave, entrambi i criteri oppure essere eseguite senza filtri in base agli input forniti.

  • Analizza i risultati per evidenziare i risultati, i consigli e gli articoli KC pertinenti.

  • Link di output per i risultati delle query DML di Amazon Athena.

  • Pulisci l'ambiente rimuovendo il database creato, le tabelle e i problemi noti caricati.

Tipo di documento

Automazione

Proprietario

Amazon

Piattaforme

/

Il AutomationAssumeRole parametro richiede le seguenti azioni per utilizzare correttamente il runbook:

  • atena: GetQueryExecution

  • atena: StartQueryExecution

  • atena: GetPreparedStatement

  • atena: CreatePreparedStatement

  • colla: GetDatabase

  • colla: CreateDatabase

  • colla: DeleteDatabase

  • colla: CreateTable

  • colla: GetTable

  • colla: DeleteTable

  • riduzione elastica della mappa: DescribeCluster

  • s3: ListBucket

  • s3: GetBucketVersioning

  • s3: ListBucketVersions

  • s3: GetBucketPublicAccessBlock

  • s3: GetBucketPolicyStatus

  • s3: GetObject

  • s3: GetBucketLocation

  • prezzi: GetProducts

  • prezzi: GetAttributeValues

  • prezzi: DescribeServices

  • prezzi: ListPriceLists

Importante

Per limitare l'accesso solo alle risorse necessarie a questa automazione, collega la seguente policy al ruolo IAM che si fida del servizio SSM. Sostituisci Partition, Region e Account con i valori appropriati per la partizione, la regione e il numero di account in cui viene eseguito il runbook.

{ "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" ] } ] }

Istruzioni

Segui questi passaggi per configurare l'automazione:

  1. Naviga AWSSupport-DiagnoseEMRLogsWithAthenanella AWS Systems Manager sezione Documenti.

  2. Seleziona Execute automation (Esegui automazione).

  3. Per i parametri di input, inserisci quanto segue:

    • AutomationAssumeRole (Facoltativo):

      L'Amazon Resource Name (ARN) del ruolo AWS Identity and Access Management (IAM) che consente a Systems Manager Automation di eseguire le azioni per tuo conto. Se non viene specificato alcun ruolo, Systems Manager Automation utilizza le autorizzazioni dell'utente che avvia questo runbook.

    • ClusterId (obbligatorio):

      L'ID del cluster Amazon EMR.

    • S3 LogLocation (opzionale):

      La posizione del log Amazon S3 Amazon EMR. Inserisci la posizione Amazon S3 dell'URL in stile Path, ad esempio:. s3://amzn-s3-demo-bucket/myfolder/j-1K48XXXXXXHCB/ Fornisci questo parametro se il cluster Amazon EMR è stato chiuso per più di giorni. 30

    • S3 BucketName (richiesto):

      Il nome del bucket Amazon S3 per caricare un elenco di problemi noti e l'output delle query Amazon Athena. Il bucket deve avere l'opzione Block Public Access abilitata e trovarsi nella stessa AWS regione e nello stesso account del cluster Amazon EMR.

    • Approvatori (obbligatori):

      L'elenco dei responsabili AWS autenticati che sono in grado di approvare o rifiutare l'azione. Puoi specificare i principali utilizzando uno dei seguenti formati: nome utente, ARN utente, ruolo IAM ARN o IAM assume il ruolo ARN. Il numero massimo di approvatori è 10.

    • FetchNodeLogsOnly (Facoltativo):

      Se impostato sutrue, l'automazione diagnostica i log dei contenitori delle applicazioni Amazon EMR. Il valore predefinito è false.

    • FetchContainersLogsOnly(Facoltativo):

      Se impostato sutrue, l'automazione diagnostica i log dei contenitori Amazon EMR. Il valore predefinito è false.

    • EndSearchDate (Facoltativo):

      La data di fine delle ricerche nei log. Se fornito, l'automazione cercherà esclusivamente i log generati fino alla data specificata nel formato YYYY-MM-DD (ad esempio:2024-12-30).

    • DaysToCheck (Facoltativo):

      Quando EndSearchDate viene fornito, questo parametro è necessario per determinare il numero di giorni in cui cercare in modo retrospettivo i log tra quelli specificati. EndSearchDate Il valore massimo è in giorni. 30 Il valore predefinito è 1.

    • SearchKeywords (Facoltativo):

      L'elenco delle parole chiave da cercare nei log, separate da virgole. Le parole chiave non possono contenere virgolette singole o doppie.

    Input parameters form for AWS Systems Manager Automation with various fields and options.
  4. Seleziona Esegui.

  5. L'automazione viene avviata.

  6. Il documento esegue le seguenti operazioni:

    • getLogLocation:

      Recupera la posizione del log di Amazon S3 interrogando l'ID cluster Amazon EMR specificato. Se l'automazione non è in grado di interrogare la posizione del log dall'ID del cluster Amazon EMR, il runbook utilizza il S3LogLocation parametro di input.

    • branchOnValidRegistro:

      Verifica la posizione dei log di Amazon EMR. Se la posizione è valida, procedi a stimare i costi potenziali di Amazon Athena durante l'esecuzione di query sui log di Amazon EMR.

    • estimateAthenaCosts:

      Determina la dimensione dei log di Amazon EMR e fornisce una stima dei costi per l'esecuzione delle scansioni Athena sul set di dati di log. Per le regioni non commerciali (non AWS partizioni), questo passaggio fornisce semplicemente la dimensione del log senza stimare i costi. I costi possono essere calcolati utilizzando la documentazione sui prezzi di Athena nella regione specificata.

    • Approva l'automazione:

      Attende l'approvazione dei responsabili IAM designati per procedere con i passaggi successivi dell'automazione. La notifica di approvazione contiene il costo stimato della scansione di Amazon Athena sui log di Amazon EMR e dettagli sulle risorse fornite dall'automazione.

    • uploadKnownIssuesExecuteAthenaQueries:

      Carica i problemi noti predefiniti nel bucket Amazon S3 specificato nel parametro. S3BucketName Crea database e tabelle AWS Glue . Esegue le query di Amazon Athena nel database in base AWS Glue ai parametri di input.

    • getQueryExecutionStato:

      Attende che l'esecuzione della query di Amazon Athena sia SUCCEEDED in corso. La query DML di Amazon Athena cerca errori ed eccezioni nei log del cluster Amazon EMR.

    • analyzeAthenaResults:

      Analizza i risultati di Amazon Athena per fornire risultati, consigli e articoli del Knowledge Center (KC) provenienti da un set predefinito di mappature.

    • getAnalyzeResultsQuery 1: ExecutionStatus

      Attende che l'esecuzione della query sia in corso. SUCCEEDED La query DML di Amazon Athena analizza i risultati della precedente query DML. Questa query di analisi restituirà eccezioni corrispondenti con risoluzioni e articoli KC

    • getAnalyzeResultsExecutionStatusQuery 2:

      Attende che l'esecuzione della query sia in corso. SUCCEEDED La query DML di Amazon Athena analizza i risultati della precedente query DML. Questa query di analisi restituirà un elenco di eccezioni/errori rilevati in ogni percorso di log di Amazon S3.

    • printAthenaQueriesMessaggio:

      Stampa i link per i risultati delle query DML di Amazon Athena.

    • Risorse di pulizia:

      Pulisce le risorse eliminando il AWS Glue database creato ed eliminando i file con problemi noti creati nel bucket di log di Amazon EMR.

  7. Al termine, consulta la sezione Output per i risultati dettagliati dell'esecuzione:

    L'output fornisce tre collegamenti per i risultati delle query Athena:

    • Elenco di tutti gli errori e le eccezioni ricorrenti presenti nei log del cluster Amazon EMR, insieme alle posizioni dei log corrispondenti (prefisso Amazon S3).

    • Riepilogo delle eccezioni note uniche riportate nei log di Amazon EMR, insieme alle risoluzioni consigliate e agli articoli KC per facilitare la risoluzione dei problemi.

    • Dettagli su dove compaiono errori ed eccezioni specifici nei percorsi di log di Amazon S3, per supportare ulteriori diagnosi.

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

Riferimenti

Systems Manager Automation

AWS documentazione di servizio