Publicar registros de Amazon EMR en Logs CloudWatch - Amazon EMR

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.

Publicar registros de Amazon EMR en Logs CloudWatch

Descripción general de

Amazon EMR on EC2 proporciona una integración nativa con Amazon CloudWatch Logs, lo que le permite enviar los registros del clúster directamente a. CloudWatch Esta función simplifica la administración de registros y proporciona un acceso centralizado a los registros del clúster de EMR para la supervisión, la solución de problemas y el análisis.

Con el CloudWatch registro activado, puede capturar y transmitir automáticamente los registros de sus clústeres de EMR a los grupos de CloudWatch registros. Esto incluye los registros de ejecución escalonada, los registros de los controladores de Spark y los registros de los ejecutores de Spark, lo que le proporciona una visibilidad completa de las operaciones del clúster y del comportamiento de las aplicaciones.

La función de CloudWatch registro está disponible a partir de la versión 7.11.0 de Amazon EMR y se configura mediante el MonitoringConfiguration parámetro al crear el clúster. Una vez habilitados, los registros se transmiten automáticamente a CloudWatch medida que se generan, lo que proporciona acceso casi en tiempo real a los datos de registro a través de la consola o la CloudWatch API.

Requisitos previos

Antes de habilitar el CloudWatch registro para su clúster de EMR, asegúrese de que se cumplan los siguientes requisitos previos:

  • Versión de Amazon EMR: su clúster debe utilizar Amazon EMR versión 7.11.0 o posterior.

  • CloudWatch Aplicación de agente: el Amazon CloudWatch Agent debe estar instalado en el clúster.

  • Permisos de IAM: el perfil de EC2 instancia de su clúster debe tener los permisos de CloudWatch registro necesarios.

  • Puntos de enlace de VPC (para subredes privadas): si su clúster está en una subred privada, debe configurar los puntos de enlace de VPC para los registros. CloudWatch

Permisos

El CloudWatch agente requiere permisos específicos AWS Identity and Access Management(IAM) para crear grupos de registros, crear flujos de registros y escribir eventos de registro en los registros. CloudWatch Estos permisos deben adjuntarse al perfil de EC2 instancia de Amazon que utiliza su clúster de EMR.

Política de IAM obligatoria

Añada la siguiente política a su perfil de EC2 instancia para que Amazon EMR conceda los permisos necesarios:

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "logs:PutLogEvents", "logs:PutRetentionPolicy", "logs:DescribeLogStreams", "logs:DescribeLogGroups", "logs:CreateLogStream", "logs:CreateLogGroup" ], "Resource": "*", "Sid": "AllowCWACloudWatchLogs" } ] }

Adjuntar la política

Para adjuntar esta política a su perfil de EC2 instancia para EMR:

  1. Vaya a la consola de IAM.

  2. Localice el perfil de instancia utilizado por su clúster de EMR, que suele ser. EMR_EC2_DefaultRole

  3. Cree una nueva política en línea o adjunte una política administrada por el cliente con los permisos anteriores.

  4. Guarda los cambios en la política.

Para obtener más información sobre las funciones de IAM para Amazon EMR, consulte Configurar las funciones de IAM para los permisos de Amazon EMR AWS a los servicios y recursos en la Guía de administración de Amazon EMR.

Configuración del registro CloudWatch

Puede habilitar el CloudWatch registro al crear un nuevo clúster de EMR a través de la consola AWS de administración AWS CLI, o. AWS SDKs La configuración se especifica mediante el MonitoringConfiguration parámetro.

Uso de la consola AWS de administración

Para crear un clúster con el CloudWatch registro desde la consola:

  1. Navegue hasta la AWS consola EMR.

  2. Elija Create cluster.

  3. En Nombre y aplicaciones, seleccione una versión de Amazon EMR 7.11.0 o superior.

  4. En Paquete de aplicaciones, selecciona las aplicaciones que deseas instalar y asegúrate de que Amazon CloudWatch Agent esté incluido en tus selecciones.

  5. En Registros de clústeres, selecciona la opción Publicar registros específicos de clústeres en Amazon. CloudWatch

  6. (Opcional) Configura los siguientes ajustes:

    • Nombre del grupo de registros: nombre del grupo de registros personalizado. El valor predeterminado es /aws/emr/{cluster_id}.

    • Prefijo de flujo de registro: Prefijo para los nombres de flujo de registro El valor predeterminado es. empty

    • CloudWatch Clave KMS: clave KMS ARN para el cifrado de registros (opcional).

    • Tipos de registro: seleccione los tipos de registro que desea capturar (predeterminado: step y Spark driver)

  7. Complete el resto de los ajustes de configuración del clúster.

  8. Elija Create cluster.

Una vez creado el clúster, puede acceder al enlace CloudWatch Registros desde la página de detalles del clúster de EMR, en Administración de clústeresDestino del registro en Amazon. CloudWatch

Usando el AWS CLI

Puede habilitar el CloudWatch registro mediante el AWS CLI create-cluster comando with. El CloudWatch agente debe estar incluido en el --applications parámetro y el registro se configura a través del --monitoring-configuration parámetro.

Ejemplo: configuración predeterminada

EMR capturará automáticamente los registros de pasos y solo los registros del controlador de Spark y los enviará al grupo de registros predeterminado.

aws emr create-cluster \ --name "EMR cluster with CloudWatch Logs" \ --release-label emr-7.11.0 \ --applications Name=Spark Name=AmazonCloudWatchAgent \ --instance-type m7g.2xlarge \ --instance-count 3 \ --use-default-roles \ --monitoring-configuration '{ "CloudWatchLogConfiguration": { "Enabled": true } }'

Cuando utilices la configuración predeterminada:

  • Nombre del grupo de registros: /aws/emr/{cluster_id} (donde {cluster_id} se reemplaza automáticamente por el ID de su clúster).

  • Prefijo del flujo de registro: vacío (sin prefijo).

  • Tipos de registro: STEP_LOGS y SPARK_DRIVER activados, cada uno de los cuales captura ambos STDOUT y. STDERR

  • Cifrado: no hay claves administradas por el cliente (usa el cifrado del CloudWatch lado del servidor de forma predeterminada)

Ejemplo: configuración personalizada

En este ejemplo, se muestra una configuración personalizada con nombres de grupos de registros específicos, cifrado KMS y tipos de registro selectivos.

aws emr create-cluster \ --name "EMR cluster with custom CloudWatch Logs" \ --release-label emr-7.11.0 \ --applications Name=Spark Name=AmazonCloudWatchAgent \ --instance-type m7g.2xlarge \ --instance-count 3 \ --use-default-roles \ --monitoring-configuration '{ "CloudWatchLogConfiguration": { "Enabled": true, "LogGroupName": "/my-company/emr/production", "LogStreamNamePrefix": "cluster-prod", "EncryptionKeyArn": "arn:aws:kms:us-east-1:123456789012:key/12345678-1234-1234-1234-123456789012", "LogTypes": { "STEP_LOGS": ["STDOUT", "STDERR"], "SPARK_DRIVER": ["STDOUT", "STDERR"], "SPARK_EXECUTOR": ["STDERR", "STDOUT"] } } }'

Esta configuración:

  • Crea registros en un grupo de registros personalizado/my-company/emr/production.

  • Prefija todos los nombres de los flujos de registro concluster-prod.

  • Cifra los registros con la clave KMS especificada.

  • Captura todos los tipos de registros: registros de pasos, registros de controladores de Spark y registros de ejecutores de Spark.

Para obtener más información sobre el uso AWS CLI de Amazon EMR, consulte la Referencia de AWS CLI comandos para EMR.

Referencia de la configuración

CloudWatchLogConfiguration Parámetros

El CloudWatchLogConfigurationv objeto admite los siguientes parámetros:

CloudWatchLogConfiguration Parámetros
Parámetro Tipo Obligatorio Descripción
Enabled Booleano trueConfigúrelo en para habilitar el CloudWatch registro. falseConfigúrelo en para deshabilitar.
LogGroupName Cadena No El nombre del grupo de CloudWatch registros. Valor predeterminado: /aws/emr/{cluster_id}
LogStreamNamePrefix Cadena No Prefijo para los nombres de los flujos de registro. Predeterminado: cadena vacía
EncryptionKeyArn Cadena No ARN de la clave KMS para el cifrado de registros. Si no se especifica, los registros se cifran mediante el cifrado CloudWatch del lado del servidor.
LogTypes Objeto No Especifica los tipos de registro que se van a capturar. Predeterminado: STEP_LOGS y SPARK_DRIVER escribe con STDOUT y STDERR.

Tipos de registro

Amazon EMR admite tres tipos de registro, cada uno de los cuales captura tanto la salida estándar como los flujos de error estándar:

Tipos de registro compatibles
Tipo de registro Description (Descripción) Transmisiones disponibles
STEP_LOGS Registros de ejecución de pasos EMR, incluidos los registros del controlador de pasos STDOUT, STDERR
SPARK_DRIVER Registros del controlador Apache Spark desde las aplicaciones de Spark STDOUT, STDERR
SPARK_EXECUTOR El ejecutor de Apache Spark registra desde los nodos de trabajo STDOUT, STDERR
Configuración de tipos de registro predeterminados

Si no se especifica el LogTypes parámetro, EMR utiliza la siguiente configuración predeterminada:

"LogTypes": { "STEP_LOGS": ["STDOUT", "STDERR"], "SPARK_DRIVER": ["STDOUT", "STDERR"] }
Configuración de tipos de registro personalizados

Puede personalizar los tipos de registro que desea capturar especificando el LogTypes parámetro de forma explícita. Por ejemplo, para capturar solo los registros de pasos:

"LogTypes": { "STEP_LOGS": ["STDOUT", "STDERR"] }

O para capturar solo los errores estándar de los controladores de Spark:

"LogTypes": { "SPARK_DRIVER": ["STDERR"] }

Denominación de grupos y flujos de registros

CloudWatch organiza los registros en grupos de registros y flujos de registros:

  • Grupo de registros: conjunto de flujos de registros que comparten la misma configuración de retención, supervisión y control de acceso.

    • Nombre predeterminado: /aws/emr/{cluster_id}

    • Nombre personalizado: cualquier nombre de grupo de CloudWatch registros válido que especifique.

  • Secuencia de registro: secuencia de eventos de registro de una sola fuente:

    • Patrones de nomenclatura:

      • Registros de pasos:{prefix}/steps/{step_id}/{file_name}.

      • Registros del controlador y del ejecutor de Spark: {prefix}/applications/{application_id}/{container_id}/{file_name}

    • Ejemplos:

      • /steps/s-ABCDEFG123456/stdout

      • cluster-prod/steps/s-ABCDEFG123456/stderr

      • /applications/application_1234567890_0001/container_1234567890_0001_01_000001/stdout

Cifrar registros con AWS KMS

Puede cifrar los CloudWatch registros en reposo mediante AWS Key Management Service (KMS). Para habilitar el cifrado:

  1. Cree o identifique una clave KMS en la misma AWS región que su clúster de EMR.

  2. Asegúrese de que la política de claves de KMS permita que el servicio de CloudWatch registros utilice la clave.

  3. Añada el EncryptionKeyArn parámetro a suCloudWatchLogConfiguration.

Para obtener información detallada sobre cómo cifrar CloudWatch los datos de los registros, consulte Cifrar los datos de registro en los CloudWatch registros mediante. AWS Key Management Service

Ejemplo de cifrado KMS

{ "CloudWatchLogConfiguration": { "Enabled": true, "EncryptionKeyArn": "arn:aws:kms:us-east-1:123456789012:key/12345678-1234-1234-1234-123456789012" } }

Visualización de los registros CloudWatch

Una vez que el clúster se ejecute con el CloudWatch registro activado, podrá ver y analizar los registros a través de la CloudWatch consola o la API.

Acceso a los registros desde la consola EMR

La forma más rápida de acceder a los registros del clúster es directamente desde la consola EMR:

  1. Vaya a la consola de Amazon EMR.

  2. Seleccione su clúster de la lista de clústeres.

  3. En la página de detalles del clúster, busque la sección Administración de clústeres.

  4. Haz clic en el CloudWatch enlace Destino del registro en Amazon.

Este enlace lo lleva directamente a la consola de CloudWatch registros filtrada por el grupo de registros de su clúster.

Acceder a los registros desde la CloudWatch consola

Para navegar manualmente hasta tus inicios de sesión CloudWatch:

  1. Abra la consola de CloudWatch .

  2. En el panel de navegación, seleccione Grupos de registro.

  3. Busca tu grupo de registros (predeterminado: /aws/emr/{cluster_id} o el nombre de tu grupo de registros personalizado)

  4. Elija el grupo de registros para ver los flujos de registro disponibles.

  5. Seleccione un flujo de registro para ver sus eventos de registro.

Para obtener más información sobre cómo trabajar con CloudWatch registros, consulte la Guía del usuario de Amazon CloudWatch Logs.

Consideraciones

CloudWatch Comportamiento del agente

El Amazon CloudWatch Agent proporciona métricas y capacidades de registro:

  • Al habilitar el CloudWatch agente por sí solo (sinMonitoringConfiguration), solo se publican CloudWatch las métricas para CloudWatch. No se envía ningún registro.

  • Para habilitar el CloudWatch registro se requieren tanto la aplicación del CloudWatch agente como el MonitoringConfiguration parámetro conCloudWatchLogConfiguration. Esto permite combinar las métricas y el registro.

Habilitar solo el CloudWatch registro (deshabilitar CloudWatch las métricas)

Si desea habilitar el CloudWatch registro pero deshabilitar la función de recopilación de métricas, puede configurar el CloudWatch agente para que deje de exportar las métricas. Añada la siguiente clasificación a la configuración del clúster:

[ { "Classification": "emr-metrics", "Properties": {}, "Configurations": [ { "Classification": "emr-system-metrics", "Properties": {}, "Configurations": [] } ] } ]

Para obtener más información sobre CloudWatch las métricas, consulta Supervisar las métricas con Amazon CloudWatch.

Limitaciones conocidas

Puntos de datos de las métricas durante la carga de registros:

Cuando el CloudWatch registro está activo, es posible que se observen brechas ocasionales en los datos de CloudWatch las métricas durante los períodos de alta actividad del registro, especialmente durante el envío de los pasos. Esto ocurre porque el controlador de instancias EMR reinicia el CloudWatch agente para aplicar nuevas configuraciones de registro cuando se envían los pasos, lo que interrumpe temporalmente la recopilación de métricas. Esto no afecta a la entrega de registros ni a la funcionalidad del clúster.

Requisitos de subred privada

Para publicar registros en Logs para un clúster de EMR en una subred privada, cree y asocie el punto de enlace de la VPC de Logs a la CloudWatch VPC de su clúster. CloudWatch

Para obtener más información sobre CloudWatch los puntos de enlace de Logs, consulte los puntos de enlace y las cuotas de Amazon CloudWatch Logs en la Guía de referencia AWS general.

Consideraciones sobre costos

CloudWatch Los cargos por registros se basan en:

  • Ingesta de datos: volumen de datos de registro ingeridos CloudWatch

  • Almacenamiento: cantidad de datos de registro almacenados, en función de su configuración de retención

  • Análisis de datos: las consultas se ejecutan mediante CloudWatch Logs Insights

Cómo optimizar los costos:

  • Establezca los períodos de retención de registros adecuados para sus grupos de registros.

  • Utilice tipos de registro selectivos para capturar solo los registros que necesite.

  • Considere la posibilidad de utilizar el registro de Amazon S3 para el almacenamiento de registros a largo plazo a un costo menor.

Para obtener información sobre los precios actuales, consulta Amazon CloudWatch Pricing.

Recursos adicionales