AWSSupport-AnalyzeEMRLogs - AWS Systems Manager Referencia del manual de automatización

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

AWSSupport-AnalyzeEMRLogs

Descripción

Este manual de procedimientos ayuda a identificar los errores al ejecutar un trabajo en un clúster de Amazon EMR. El manual de procedimientos analiza una lista de registros definidos en el sistema de archivos y busca una lista de palabras clave predefinidas. Estas entradas de registro se utilizan para crear CloudWatch eventos de Amazon Events para que pueda realizar las acciones necesarias en función de los eventos. Si lo desea, el runbook publica las entradas de registro en el grupo de CloudWatch registros de Amazon Logs que elija. Actualmente, este manual de procedimientos busca los siguientes errores y patrones en los archivos de registro:

  • container_out_of_memory: el contenedor YARN se quedó sin memoria, por lo que es posible que no se ejecute el trabajo.

  • yarn_nodemanager_health: el nodo MAESTRO o de TAREA se está quedando sin espacio en disco y no podrá ejecutar tareas.

  • node_state_change: el nodo MAESTRO no puede acceder al nodo MAESTRO o de TAREA.

  • step_failure: falló un paso de EMR.

  • no_core_nodes_running: actualmente no hay nodos PRINCIPALES en ejecución, el clúster no está en buen estado.

  • hdfs_missing_blocks: faltan bloques de HDFS, lo que podría provocar la pérdida de datos.

  • hdfs_high_util: el uso del HDFS es elevado, lo que puede afectar a los trabajos y al buen estado del clúster.

  • instance_controller_restart: el proceso del controlador de instancias se ha reiniciado. Este proceso es esencial para el buen estado del clúster.

  • instance_controller_restart_legacy: el proceso del controlador de instancias se ha reiniciado. Este proceso es esencial para el buen estado del clúster.

  • high_load: se detectó un promedio de carga alto, lo que puede afectar a los informes sobre el estado de los nodos o provocar tiempos de espera o ralentizaciones.

  • yarn_node_blacklisted: YARN ha incluido en la lista negra el nodo MAESTRO o de TAREA para que no pueda ejecutar tareas.

  • yarn_node_lost: YARN ha marcado el nodo MAESTRO o de TAREA como PERDIDO, posibles problemas de conectividad.

Las instancias asociadas al ClusterID que especifique deben ser administradas por AWS Systems Manager. Puede ejecutar esta automatización una vez, programar la automatización para que se ejecute en un intervalo de tiempo específico o eliminar una programación creada previamente por una automatización. Este manual de procedimientos es compatible con las versiones 5.20 a 6.30 de Amazon EMR.

Ejecuta esta automatización (consola)

Tipo de documento

Automatización

Propietario

Amazon

Plataformas

Linux, macOS, Windows

Parámetros

  • AutomationAssumeRole

    Tipo: cadena

    Descripción: (opcional) el Nombre de recurso de Amazon (ARN) del rol de AWS Identity and Access Management (IAM) que permite a Systems Manager Automation realizar las acciones en su nombre. Si no se especifica ningún rol, Systems Manager Automation utiliza los permisos del usuario que comienza este manual de procedimientos.

  • ID del clúster

    Tipo: cadena

    Descripción: (obligatorio) el ID del clúster cuyos registros de nodos desea analizar.

  • Operación

    Tipo: cadena

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

    Descripción: (obligatoria) la operación que se debe realizar en el clúster.

  • IntervalTime

    Tipo: cadena

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

    Descripción: (opcional) el tiempo transcurrido entre la ejecución de la automatización. Este parámetro solo se aplica si especifica Schedule para el parámetro Operation.

  • LogToCloudWatchLogs

    Tipo: cadena

    Valores válidos: Yes | No

    Descripción: (opcional) Si especificas yes el valor de este parámetro, la automatización crea un grupo de CloudWatch registros con el nombre especificado en el CloudWatchLogGroup parámetro para almacenar cualquier entrada de registro que coincida.

  • CloudWatchLogGroup

    Tipo: cadena

    Descripción: (opcional) El nombre del grupo de CloudWatch registros en el que desea almacenar las entradas de registro coincidentes. Este parámetro solo se aplica si especifica yes para el parámetro LogToCloudWatchLogs.

  • CreateLogInsightsDashboard

    Tipo: cadena

    Valores válidos: Yes | No

    Descripción: (opcional) Si lo especificayes, se crea el CloudWatch panel si aún no existe. Este parámetro solo se aplica si especifica yes para el parámetro LogToCloudWatchLogs.

  • CreateMetricFilters

    Tipo: cadena

    Valores válidos: Yes | No

    Descripción: (opcional) Especifique yes si desea crear filtros de métricas para el grupo de CloudWatch registros. Este parámetro solo se aplica si especifica yes para el parámetro LogToCloudWatchLogs.

Permisos de IAM necesarios

El parámetro AutomationAssumeRole requiere las siguientes acciones para utilizar el manual de procedimientos correctamente.

  • 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

Pasos de documentos

  • aws:executeAwsApi: recopila información sobre el clúster de Amazon EMR especificado en el parámetro ClusterID.

  • aws:branch: se ramifica en función de la entrada.

    • Si la operación proporcionada es Run Once o Schedule:

      • aws:assertAwsResourceProperty: verifica que el clúster esté disponible.

      • aws:executeAwsApi: recopila los ID de todas las instancias que se ejecutan en el clúster.

      • aws:assertAwsResourceProperty: verifica que el agente SSM se esté ejecutando en todas las instancias del clúster.

      • aws:branch: se ramifica en función de si especificó ejecutar la automatización una vez o de forma programada.

        • Si la operación proporcionada es Run Once:

          • aws:branch: se ramifica en función del valor especificado en el parámetro LogToCloudWatchLogs.

            • Si el valor LogToCloudWatchLogs es yes:

              • aws:executeScript- Comprueba si CloudWatchLogGroup ya existe un grupo de CloudWatch registros con el nombre especificado en el parámetro. De lo contrario, el grupo se crea con el nombre especificado.

              • aws:branch: se ramifica en función del valor especificado en el parámetro CreateMetricFilters.

                • Si el valor CreateMetricFilters es yes:

                  • aws:executeAwsApi: se ejecutan 12 pasos para cada filtro métrico

                  • aws:branch: se ramifica en función del valor especificado en el parámetro CreateLogInsightsDashboard.

                    • Si el valor CreateLogInsightsDashboard es yes:

                      • aws:executeAwsApi- Crea un CloudWatch panel con el mismo nombre especificado en el CloudWatchLogGroup parámetro, si aún no existe.

                    • Si el valor CreateLogInsightsDashboard es no:

                      • aws:runCommand: ejecuta un script de intérprete de comandos para buscar patrones de registro en cada instancia en el clúster.

                • Si el valor CreateMetricFilters es no:

                  • aws:branch: se ramifica en función del valor especificado en el parámetro CreateLogInsightsDashboard.

                    • Si el valor CreateLogInsightsDashboard es yes:

                      • aws:executeAwsApi- Crea un CloudWatch panel con el mismo nombre especificado en el CloudWatchLogGroup parámetro, si aún no existe.

                    • Si el valor CreateLogInsightsDashboard es no:

                      • aws:runCommand: ejecuta un script de intérprete de comandos para buscar patrones de registro en cada instancia en el clúster.

            • Si el valor LogToCloudWatchLogs es no:

              • aws:executeAwsApi: ejecuta un script de intérprete de comandos para buscar patrones de registro en cada instancia en el clúster.

        • Si la operación proporcionada es Schedule:

          • aws:createStack- Crea un EventBridge evento de Amazon dirigido a este runbook.

    • Si la operación proporcionada es Remove Schedule:

      • aws:executeAwsApi: verifica la existencia de un horario para el clúster.

      • aws:deleteStack: elimina la programación.

Salidas

GetClusterInformation.ClusterName

GetClusterInformation.ClusterState

ListingClusterInstances.ID de instancia

CreatingScheduleCloudFormationStack.StackStatus

RemovingScheduleByDeletingScheduleCloudFormationStack.StackStatus

CheckIfLogGroupExists.salida

FindLogPatternOnMer Node. CommandId