AWSSupport-AnalyzeEMRLogs - AWS Systems Manager Referência do runbook de automação

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

AWSSupport-AnalyzeEMRLogs

Descrição

Esse runbook ajuda a identificar erros ao executar um trabalho em um cluster do Amazon EMR. O runbook analisa uma lista de logs definidos no sistema de arquivos e procura uma lista de palavras-chave predefinidas. Essas entradas de registro são usadas para criar CloudWatch eventos da Amazon Events para que você possa realizar as ações necessárias com base nos eventos. Opcionalmente, o runbook publica entradas de registro no grupo de CloudWatch registros Amazon Logs de sua escolha. Atualmente, esse runbook procura os seguintes erros e padrões nos arquivos de log:

  • container_out_of_memory :O contêiner YARN ficou sem memória, o trabalho em execução pode falhar.

  • yarn_nodemanager_health: O nó de TAREFA ou CORE está com pouco espaço em disco e não poderá executar tarefas.

  • node_state_change: o nó de TAREFA ou CORE não pode ser acessado pelo nó PRINCIPAL.

  • step_failure: Uma etapa do EMR falhou.

  • no_core_nodes_running: Nenhum nó CENTRAL está em execução no momento, o cluster não está íntegro.

  • hdfs_missing_blocks: Há blocos HDFS ausentes que podem levar à perda de dados.

  • hdfs_high_util: A utilização do HDFS é alta, o que pode afetar as tarefas e a integridade do cluster.

  • instance_controller_restart: O processo do Instance-Controller foi reiniciado. Esse processo é essencial para a integridade do cluster.

  • instance_controller_restart_legacy: O processo do Instance-Controller foi reiniciado. Esse processo é essencial para a integridade do cluster.

  • high_load: A alta média de carga detectada pode afetar os relatórios de integridade do nó ou resultar em tempos limite ou lentidão.

  • yarn_node_blacklisted: O nó de TAREFA ou CORE foi colocado na lista negra do YARN para executar tarefas.

  • yarn_node_lost: O nó de TAREFA ou CORE foi marcado como PERDIDO pelo YARN, possíveis problemas de conectividade.

As instâncias associadas ao ClusterID que você especifica devem ser gerenciadas pelo AWS Systems Manager. Você pode executar essa automação uma vez, programar a automação para ser executada em um intervalo de tempo específico ou remover uma programação criada anteriormente por uma automação. Este runbook é compatível com as versões 5.20 a 6.30 do Amazon EMR.

Executar esta automação (console)

Tipo de documento

Automação

Proprietário

Amazon

Plataformas

Linux, macOS, Windows

Parâmetros

  • AutomationAssumeRole

    Tipo: String

    Descrição: (opcional) o nome do recurso da Amazon (ARN) do perfil do AWS Identity and Access Management (IAM) que permite que o Systems Manager Automation realize ações em seu nome. Se nenhum perfil for especificado, o Systems Manager Automation usa as permissões do usuário que inicia este runbook.

  • ClusterID

    Tipo: string

    Descrição: (obrigatório) O ID do cluster cujos logs de nós que deseja analisar.

  • Operation

    Tipo: string

    Valores válidos: Run Once | Schedule | Remove Schedule

    Descrição: (obrigatório) A operação a ser executada no cluster.

  • IntervalTime

    Tipo: string

    Valores válidos: 5 minutes | 10 minutes | 15 minutes

    Descrição: (opcional) A duração do tempo entre a execução da automação. Esse parâmetro só é aplicável se for especificado Schedule para o parâmetro Operation.

  • LogToCloudWatchLogs

    Tipo: string

    Valores válidos: sim | não

    Descrição: (Opcional) Se você especificar yes o valor desse parâmetro, a automação criará um grupo de CloudWatch registros de registros com o nome especificado no CloudWatchLogGroup parâmetro para armazenar todas as entradas de registro correspondentes.

  • CloudWatchLogGroup

    Tipo: string

    Descrição: (Opcional) O nome do grupo de CloudWatch registros de registros em que você deseja armazenar todas as entradas de registro correspondentes. Esse parâmetro só é aplicável se for especificado yes para o parâmetro LogToCloudWatchLogs.

  • CreateLogInsightsDashboard

    Tipo: string

    Valores válidos: sim | não

    Descrição: (Opcional) Se você especificaryes, o CloudWatch painel será criado se ainda não existir. Esse parâmetro só é aplicável se for especificado yes para o parâmetro LogToCloudWatchLogs.

  • CreateMetricFilters

    Tipo: string

    Valores válidos: sim | não

    Descrição: (Opcional) Especifique yes se você deseja criar filtros métricos para o grupo de CloudWatch registros de registros. Esse parâmetro só é aplicável se for especificado yes para o parâmetro LogToCloudWatchLogs.

Permissões obrigatórias do IAM

O parâmetro AutomationAssumeRole requer as seguintes ações para usar o runbook com êxito.

  • 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

Etapas do documento

  • aws:executeAwsApi :Coleta informações sobre o cluster do Amazon EMR especificado no parâmetro ClusterID.

  • aws:branch :Ramificações com base na entrada.

    • Se a operação fornecida for Run Once ou Schedule:

      • aws:assertAwsResourceProperty :Verifica se o cluster está disponível.

      • aws:executeAwsApi :Reúne os IDs de todas as instâncias em execução no cluster.

      • aws:assertAwsResourceProperty :Verifica se o SSM Agent está sendo executado em todas as instâncias do cluster.

      • aws:branch :Ramificações com base na especificação de executar a automação uma vez ou em um cronograma.

        • Se a operação fornecida for Run Once:

          • aws:branch :Ramificações com base no valor especificado para o parâmetro LogToCloudWatchLogs.

            • Se o valor de LogToCloudWatchLogs for yes:

              • aws:executeScript- Verifica se CloudWatchLogGroup já existe um grupo de CloudWatch registros de registros com o nome especificado no parâmetro. Caso contrário, o grupo será criado com o nome especificado.

              • aws:branch :Ramificações com base no valor especificado para o parâmetro CreateMetricFilters.

                • Se o valor de CreateMetricFilters for yes:

                  • aws:executeAwsApi :12 etapas são executadas para cada filtro métrico

                  • aws:branch :Ramificações com base no valor especificado para o parâmetro CreateLogInsightsDashboard.

                    • Se o valor de CreateLogInsightsDashboard for yes:

                      • aws:executeAwsApi- Cria um CloudWatch painel com o mesmo nome especificado no CloudWatchLogGroup parâmetro, caso ele ainda não exista.

                    • Se o valor de CreateLogInsightsDashboard for no:

                      • aws:runCommand :Executa um script de shell para encontrar padrões de log em cada instância no cluster.

                • Se o valor de CreateMetricFilters for no:

                  • aws:branch :Ramificações com base no valor especificado no parâmetro CreateLogInsightsDashboard.

                    • Se o valor de CreateLogInsightsDashboard for yes:

                      • aws:executeAwsApi- Cria um CloudWatch painel com o mesmo nome especificado no CloudWatchLogGroup parâmetro, caso ele ainda não exista.

                    • Se o valor de CreateLogInsightsDashboard for no:

                      • aws:runCommand :Executa um script de shell para encontrar padrões de log em cada instância no cluster.

            • Se o valor de LogToCloudWatchLogs for no:

              • aws:executeAwsApi :Executa um script de shell para encontrar padrões de log em cada instância no cluster.

        • Se a operação fornecida for Schedule:

          • aws:createStack- Cria um EventBridge evento da Amazon que tem como alvo esse runbook.

    • Se a operação fornecida for Remove Schedule:

      • aws:executeAwsApi :Verifica se existe um cronograma para o cluster.

      • aws:deleteStack :Exclui a programação.

Saídas

GetClusterInformation.ClusterName

GetClusterInformation.ClusterState

ListingClusterInstances.IDs de instância

CreatingScheduleCloudFormationStack.StackStatus

RemovingScheduleByDeletingScheduleCloudFormationStack.StackStatus

CheckIfLogGroupExists.saída

FindLogPatternOnMerNode. CommandId