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

Descrizione

Questo runbook aiuta a identificare gli errori durante l'esecuzione di un job su un cluster Amazon EMR. Il runbook analizza un elenco di log definiti sul file system e cerca un elenco di parole chiave predefinite. Queste voci di registro vengono utilizzate per creare CloudWatch eventi Amazon Events in modo da poter intraprendere tutte le azioni necessarie in base agli eventi. Facoltativamente, il runbook pubblica le voci di registro nel gruppo di log Amazon CloudWatch Logs di tua scelta. Questo runbook attualmente cerca i seguenti errori e modelli nei file di registro:

  • container_out_of_memory — Il contenitore YARN ha esaurito la memoria, l'esecuzione del processo potrebbe non riuscire.

  • yarn_nodemanager_health: il nodo CORE o TASK sta esaurendo lo spazio su disco e non sarà in grado di eseguire attività.

  • node_state_change: il nodo CORE o TASK non è raggiungibile dal nodo MASTER.

  • step_failure: Un passaggio EMR non è riuscito.

  • no_core_nodes_running: Nessun nodo CORE è attualmente in esecuzione, il cluster non è integro.

  • hdfs_missing_blocks: Mancano blocchi HDFS che potrebbero portare alla perdita di dati.

  • hdfs_high_util: L'utilizzo di HDFS è elevato, il che può influire sui job e sullo stato del cluster.

  • instance_controller_restart: il processo Instance-Controller è stato riavviato. Questo processo è essenziale per l'integrità del cluster.

  • instance_controller_restart_legacy: il processo Instance-Controller è stato riavviato. Questo processo è essenziale per l'integrità del cluster.

  • high_load: rilevata una media di carico elevata, può influire sulla segnalazione dello stato dei nodi o causare timeout o rallentamenti.

  • yarn_node_blacklisted: il nodo CORE o TASK è stato inserito nella lista nera da YARN per impedire l'esecuzione delle attività.

  • yarn_node_lost: il nodo CORE o TASK è stato contrassegnato come LOST da YARN, possibili problemi di connettività.

Le istanze associate a quello ClusterID specificato devono essere gestite da. AWS Systems ManagerÈ possibile eseguire questa automazione una sola volta, pianificare l'automazione in modo che venga eseguita a un intervallo di tempo specifico o rimuovere una pianificazione creata in precedenza da un'automazione. Questo runbook supporta le versioni di Amazon EMR dalla 5.20 alla 6.30.

Esegui questa automazione (console)

Tipo di documento

Automazione

Proprietario

Amazon

Piattaforme

LinuxmacOS, Windows

Parametri

  • AutomationAssumeRole

    ▬Tipo: stringa

    Descrizione: (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

    ▬Tipo: stringa

    Descrizione: (Obbligatorio) L'ID del cluster di cui si desidera analizzare i log dei nodi.

  • Operazione

    ▬Tipo: stringa

    Valori validi: Run Once | Schedule | Remove Schedule

    Descrizione: (Obbligatoria) L'operazione da eseguire sul cluster.

  • IntervalTime

    ▬Tipo: stringa

    Valori validi: 5 minuti | 10 minuti | 15 minuti

    Descrizione: (Facoltativo) L'intervallo di tempo che intercorre tra l'esecuzione dell'automazione. Questo parametro è applicabile solo se viene specificato Schedule per il Operation parametro.

  • LogToCloudWatchRegistri

    ▬Tipo: stringa

    Valori validi: sì | no

    Descrizione: (Facoltativo) Se si specifica yes il valore di questo parametro, l'automazione crea un gruppo di log CloudWatch Logs con il nome specificato nel CloudWatchLogGroup parametro per memorizzare tutte le voci di registro corrispondenti.

  • CloudWatchLogGroup

    ▬Tipo: stringa

    Descrizione: (Facoltativo) Il nome del gruppo di log CloudWatch Logs in cui si desidera memorizzare tutte le voci di registro corrispondenti. Questo parametro è applicabile solo se viene specificato yes per il LogToCloudWatchLogs parametro.

  • CreateLogInsightsDashboard

    ▬Tipo: stringa

    Valori validi: sì | no

    Descrizione: (Facoltativo) Se si specificayes, la CloudWatch dashboard viene creata se non esiste già. Questo parametro è applicabile solo se viene specificato yes per il LogToCloudWatchLogs parametro.

  • CreateMetricFiltri

    ▬Tipo: stringa

    Valori validi: sì | no

    Descrizione: (Facoltativo) Specificate yes se desiderate creare filtri metrici per il gruppo di log CloudWatch Logs. Questo parametro è applicabile solo se si specifica yes per il LogToCloudWatchLogs parametro.

Autorizzazioni IAM richieste

Il AutomationAssumeRole parametro richiede le seguenti azioni per utilizzare correttamente il 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

Fasi del documento

  • aws:executeAwsApi- Raccoglie informazioni sul cluster Amazon EMR specificato nel ClusterID parametro.

  • aws:branch- Filiali basate sull'input.

    • Se l'operazione fornita è Run Once oSchedule:

      • aws:assertAwsResourceProperty- Verifica che il cluster sia disponibile.

      • aws:executeAwsApi- Raccoglie gli ID di tutte le istanze in esecuzione nel cluster.

      • aws:assertAwsResourceProperty- Verifica che l'agente SSM sia in esecuzione su tutte le istanze del cluster.

      • aws:branch- Filiali a seconda che tu abbia specificato di eseguire l'automazione una sola volta o in base a una pianificazione.

        • Se l'operazione fornita èRun Once:

          • aws:branch- Rami basati sul valore specificato nel LogToCloudWatchLogs parametro.

            • Se LogToCloudWatchLogs il valore èyes:

              • aws:executeScript- Verifica se esiste CloudWatchLogGroup già un gruppo di log CloudWatch Logs con il nome specificato nel parametro. In caso contrario, il gruppo viene creato con il nome specificato.

              • aws:branch- Rami basati sul valore specificato nel CreateMetricFilters parametro.

                • Se CreateMetricFilters il valore èyes:

                  • aws:executeAwsApi- Vengono eseguiti 12 passaggi per ogni filtro metrico

                  • aws:branch- Rami basati sul valore specificato nel CreateLogInsightsDashboard parametro.

                    • Se CreateLogInsightsDashboard il valore èyes:

                      • aws:executeAwsApi- Crea una CloudWatch dashboard con lo stesso nome specificato nel CloudWatchLogGroup parametro, se non esiste già.

                    • Se CreateLogInsightsDashboard il valore èno:

                      • aws:runCommand- Esegue uno script di shell per trovare modelli di registro su ogni istanza del cluster.

                • Se CreateMetricFilters il valore èno:

                  • aws:branch- Rami basati sul valore specificato nel CreateLogInsightsDashboard parametro.

                    • Se CreateLogInsightsDashboard il valore èyes:

                      • aws:executeAwsApi- Crea una CloudWatch dashboard con lo stesso nome specificato nel CloudWatchLogGroup parametro, se non esiste già.

                    • Se CreateLogInsightsDashboard il valore èno:

                      • aws:runCommand- Esegue uno script di shell per trovare modelli di registro su ogni istanza del cluster.

            • Se LogToCloudWatchLogs il valore èno:

              • aws:executeAwsApi- Esegue uno script di shell per trovare modelli di registro su ogni istanza del cluster.

        • Se l'operazione fornita èSchedule:

          • aws:createStack- Crea un EventBridge evento Amazon destinato a questo runbook.

    • Se l'operazione fornita èRemove Schedule:

      • aws:executeAwsApi- Verifica l'esistenza di una pianificazione per il cluster.

      • aws:deleteStack- Elimina la pianificazione.

Output

GetClusterInformazioni. ClusterName

GetClusterInformazioni. ClusterState

ListingClusterInstances.InstanceID

CreatingScheduleCloudFormationPila. StackStatus

RemovingScheduleByDeletingScheduleCloudFormationStack.StackStatus

CheckIfLogGroupesiste. Output

FindLogPatternOnNodo EMR. CommandId