Registro y supervisión de las sesiones de Apache Spark - Amazon Athena

Registro y supervisión de las sesiones de Apache Spark

A partir de la versión 3.5 de Apache Spark, puede especificar el registro administrado, de Amazon S3 o de CloudWatch como opciones de registro.

Con el registro administrado y el registro de S3, en la siguiente tabla se muestran las ubicaciones de registro y la disponibilidad de la IU que puede esperar si elige esas opciones.

Opción Registros de eventos Registros de contenedor IU de las aplicaciones
Registro administrado (valor predeterminado) Almacenado en un bucket de S3 administrado Almacenado en un bucket de S3 administrado Compatible
Tanto registro administrado como bucket de S3 Almacenado en ambos lugares Almacenado en un bucket de S3 Compatible
Bucket de Amazon S3 Almacenado en un bucket de S3 Almacenado en un bucket de S3 No admitido1

1 Le sugerimos que mantenga seleccionada la opción de registro administrado. De lo contrario, no podrá utilizar las IU de la aplicación integradas.

Registro administrado

De forma predeterminada, los grupos de trabajo de Athena Spark almacenan los registros de las aplicaciones de forma segura en los bucket de S3 administrados por el servicio durante un máximo de 30 días.

Si lo desea, puede proporcionar una clave de KMS (ID de clave, ARN, alias o ARN de alias) que el servicio utilizará para cifrar los registros administrados.

aws athena start-session \ --work-group "WORKGROUP" \ --monitoring-configuration '{ "ManagedLoggingConfiguration": { "Enabled": true, "KmsKey": "KMS_KEY" }, }' --engine-configuration ''
nota

Si desactiva el registro administrado, Athena no podrá solucionar los problemas de sus sesiones en su nombre. Ejemplo: no accederá a la interfaz de usuario de Spark desde los cuadernos de Amazon SageMaker AI Studio ni mediante la API GetResourceDashboard.

Para desactivar esta opción desde la AWS CLI, utilice la configuración ManagedLoggingConfiguration cuando inicie una sesión interactiva.

aws athena start-session \ --work-group "WORKGROUP" \ --monitoring-configuration '{ "ManagedLoggingConfiguration": { "Enabled": false }, }' --engine-configuration ''

Permisos necesarios para el registro administrado

Si ha proporcionado una clave de KMS, necesitará los siguientes permisos en la política de permisos para el rol de ejecución.

{ "Action": [ "kms:Encrypt", "kms:Decrypt", "kms:ReEncrypt*", "kms:GenerateDataKey*", "kms:DescribeKey" ], "Resource": "*", "Effect": "Allow" }

Registros de Amazon S3

Puede configurar la entrega de registros a buckets de Amazon S3.

Para activar la entrega de registros de S3 desde la AWS CLI, utilice la configuración S3LoggingConfiguration cuando inicie una sesión interactiva.

aws athena start-session \ --work-group "WORKGROUP" \ --monitoring-configuration '{ "S3LoggingConfiguration": { "Enabled":true, "LogLocation": "s3://bucket/", }, }' --engine-configuration ''

Si lo desea, puede proporcionar una clave de KMS (ID de clave, ARN, alias o ARN de alias) que el servicio utilizará para cifrar los registros de S3.

aws athena start-session \ --work-group "WORKGROUP" \ --monitoring-configuration '{ "S3LoggingConfiguration": { "Enabled":true, "LogLocation": "s3://bucket/", "KmsKey": "KMS_KEY" }, }' --engine-configuration ''

Permisos necesarios para la entrega de registros a Amazon S3

Para que las sesiones puedan entregar registros a los buckets de Amazon S3, incluya los siguientes permisos en la política de permisos del rol de ejecución.

{ "Action": "s3:*", "Resource": "*", "Effect": "Allow" }

Si ha proporcionado una clave de KMS, también necesitará los siguientes permisos en la política de permisos del rol de ejecución.

{ "Action": [ "kms:Encrypt", "kms:Decrypt", "kms:ReEncrypt*", "kms:GenerateDataKey*", "kms:DescribeKey" ], "Resource": "*", "Effect": "Allow" }

Si la clave de kms y el bucket no son de la misma cuenta, KMS debe permitir la entidad principal del servicio de S3.

{ "Effect": "Allow", "Principal": { "Service": "s3.amazonaws.com" }, "Action": [ "kms:Encrypt", "kms:Decrypt", "kms:GenerateDataKey*" ], "Resource": "*", "Condition": { "StringEquals": { "aws:SourceAccount": "ACCOUNT_HAVING_KMS_KEY" } } }

Registro de CloudWatch

Puede configurar la entrega de registros a grupos de registro de CloudWatch.

Para activar la entrega de registros de S3 desde la AWS CLI, utilice la configuración CloudWatchLoggingConfiguration cuando inicie una sesión interactiva.

aws athena start-session \ --work-group "WORKGROUP" \ --monitoring-configuration '{ "CloudWatchLoggingConfiguration": { "Enabled": true, "LogGroup": "/aws/athena/sessions/${workgroup}", "LogStreamNamePrefix": "session-" } }' --engine-configuration ''

Todos los registros se entregarán de forma predeterminada, pero si lo desea, puede especificar qué tipos de registro desea incluir.

aws athena start-session \ --work-group "WORKGROUP" \ --monitoring-configuration '{ "CloudWatchLoggingConfiguration": { "Enabled": true, "LogGroup": "/aws/athena/sessions/${workgroup}", "LogStreamNamePrefix": "session-", "LogTypes": { "SPARK_DRIVER": [ "STDOUT", "STDERR" ], "SPARK_EXECUTOR": [ "STDOUT", "STDERR" ] } } }' --engine-configuration ''

Permisos necesarios para la entrega de registros a CloudWatch

Para que las sesiones puedan entregar registros a los grupos de registro de CloudWatch, incluya los siguientes permisos en la política de permisos del rol de ejecución.

{ "Action": [ "logs:CreateLogGroup", "logs:CreateLogStream", "logs:PutLogEvents", "logs:DescribeLogGroups", "logs:DescribeLogStreams" ], "Resource": "*", "Effect": "Allow" }

Y el siguiente permiso para la política de recursos de claves de KMS.

{ "Effect": "Allow", "Principal": { "Service": "logs.<region>.amazonaws.com" }, "Action": [ "kms:Encrypt", "kms:Decrypt", "kms:ReEncrypt*", "kms:GenerateDataKey*", "kms:DescribeKey" ], "Resource": "*" }

Configuración de los valores predeterminados de registro en el grupo de trabajo

También puede especificar las opciones de registro predeterminadas a nivel de grupo de trabajo.

Para especificar las opciones de registro predeterminadas de la AWS CLI para un grupo de trabajo, utilice la configuración monitoring-configuration al crear un grupo de trabajo nuevo:

aws athena create-work-group \ --region "REGION" \ --name "WORKGROUP_NAME" \ --monitoring-configuration '{ "CloudWatchLoggingConfiguration": { "Enabled": true, "LogGroup": "/aws/athena/sessions/${workgroup}", "LogStreamNamePrefix": "session-", "LogTypes": { "SPARK_DRIVER": [ "STDOUT", "STDERR" ], "SPARK_EXECUTOR": [ "STDOUT", "STDERR" ] } }, "ManagedLoggingConfiguration": { "Enabled": true, "KmsKey": "KMS_KEY" }, "S3LoggingConfiguration": { "Enabled": true, "KmsKey": "KMS_KEY" "LogLocation": "s3://bucket/", "LogTypes": { "SPARK_DRIVER": [ "STDOUT", "STDERR" ], "SPARK_EXECUTOR": [ "STDOUT", "STDERR" ] } } }'

Para modificar las opciones de registro predeterminadas de la AWS CLI para un grupo de trabajo, utilice la configuración monitoring-configuration al actualizar un grupo de trabajo: Los cambios se aplicarán a las nuevas sesiones interactivas en el futuro.

aws athena update-work-group \ --region "REGION" \ --work-group "WORKGROUP_NAME" --monitoring-configuration '{ "CloudWatchLoggingConfiguration": { "Enabled": true, "LogGroup": "/aws/athena/sessions/${workgroup}", "LogStreamNamePrefix": "session-", "LogTypes": { "SPARK_DRIVER": [ "STDOUT", "STDERR" ], "SPARK_EXECUTOR": [ "STDOUT", "STDERR" ] } }, "ManagedLoggingConfiguration": { "Enabled": true, "KmsKey": "KMS_KEY" }, "S3LoggingConfiguration": { "Enabled": true, "KmsKey": "KMS_KEY" "LogLocation": "s3://bucket/", "LogTypes": { "SPARK_DRIVER": [ "STDOUT", "STDERR" ], "SPARK_EXECUTOR": [ "STDOUT", "STDERR" ] } } }'