Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.
Journalisation et surveillance des sessions Apache Spark
À partir de la version 3.5 d'Apache Spark, vous pouvez spécifier la gestion, Amazon S3 ou la CloudWatch journalisation comme options de journalisation.
Dans le cas de la journalisation gérée et de la journalisation S3, le tableau suivant répertorie les emplacements des journaux et la disponibilité de l'interface utilisateur auxquels vous pouvez vous attendre si vous choisissez ces options.
| Option | Journaux d'événements | Journaux de conteneurs | Interface utilisateur de l'application |
|---|---|---|---|
| Journalisation gérée (par défaut) | Stocké dans un compartiment S3 géré | Stocké dans un compartiment S3 géré | Pris en charge |
| Journalisation gérée et compartiment S3 | Stocké aux deux endroits | Stocké dans un compartiment S3 | Pris en charge |
| Compartiment Amazon S3 | Stocké dans un compartiment S3 | Stocké dans un compartiment S3 | Non pris en charge 1 |
1 Nous vous suggérons de conserver l'option de journalisation gérée sélectionnée. Dans le cas contraire, vous ne pouvez pas utiliser l'application intégrée UIs.
Journalisation gérée
Par défaut, les groupes de travail Athena Spark stockent les journaux des applications en toute sécurité dans des compartiments S3 gérés par des services pendant une durée maximale de 30 jours.
Vous pouvez éventuellement fournir une clé KMS (key id, arn, alias ou alias arn) que le service utilisera pour chiffrer les journaux gérés.
aws athena start-session \ --work-group "WORKGROUP" \ --monitoring-configuration '{ "ManagedLoggingConfiguration": { "Enabled": true, "KmsKey": "KMS_KEY" }, }' --engine-configuration ''
Note
Si vous désactivez la journalisation gérée, Athena ne pourra pas résoudre les problèmes liés à vos sessions à votre place. Exemple : vous n'accéderez pas à l'interface utilisateur Spark-UI depuis les blocs-notes Amazon SageMaker AI Studio ou en utilisant l'API. GetResourceDashboard
Pour désactiver cette option depuis le AWS CLI, utilisez la ManagedLoggingConfiguration configuration lorsque vous démarrez une session interactive.
aws athena start-session \ --work-group "WORKGROUP" \ --monitoring-configuration '{ "ManagedLoggingConfiguration": { "Enabled": false }, }' --engine-configuration ''
Autorisations requises pour la journalisation gérée
Si vous avez fourni une clé KMS, vous aurez besoin des autorisations suivantes dans la politique d'autorisation pour le rôle d'exécution.
{ "Action": [ "kms:Encrypt", "kms:Decrypt", "kms:ReEncrypt*", "kms:GenerateDataKey*", "kms:DescribeKey" ], "Resource": "*", "Effect": "Allow" }
Journalisation sur Amazon S3
Vous pouvez configurer la livraison des journaux vers les compartiments Amazon S3.
Pour activer la livraison du journal S3 à partir du AWS CLI, utilisez la S3LoggingConfiguration configuration lorsque vous démarrez une session interactive.
aws athena start-session \ --work-group "WORKGROUP" \ --monitoring-configuration '{ "S3LoggingConfiguration": { "Enabled":true, "LogLocation": "s3://bucket/", }, }' --engine-configuration ''
Vous pouvez éventuellement fournir une clé KMS (identifiant de clé, arn, alias ou alias arn) que le service utilisera pour chiffrer les journaux S3.
aws athena start-session \ --work-group "WORKGROUP" \ --monitoring-configuration '{ "S3LoggingConfiguration": { "Enabled":true, "LogLocation": "s3://bucket/", "KmsKey": "KMS_KEY" }, }' --engine-configuration ''
Autorisations requises pour la livraison des journaux à Amazon S3
Avant que vos sessions puissent envoyer des journaux aux compartiments Amazon S3, incluez les autorisations suivantes dans la politique d'autorisation pour le rôle d'exécution.
{ "Action": "s3:*", "Resource": "*", "Effect": "Allow" }
Si vous avez fourni une clé KMS, vous aurez également besoin des autorisations suivantes dans la politique d'autorisation pour le rôle d'exécution.
{ "Action": [ "kms:Encrypt", "kms:Decrypt", "kms:ReEncrypt*", "kms:GenerateDataKey*", "kms:DescribeKey" ], "Resource": "*", "Effect": "Allow" }
Si la clé et le compartiment KMS ne proviennent pas du même compte, KMS doit autoriser le principal de service S3.
{ "Effect": "Allow", "Principal": { "Service": "s3.amazonaws.com" }, "Action": [ "kms:Encrypt", "kms:Decrypt", "kms:GenerateDataKey*" ], "Resource": "*", "Condition": { "StringEquals": { "aws:SourceAccount": "ACCOUNT_HAVING_KMS_KEY" } } }
CloudWatch journalisation
Vous pouvez configurer la livraison des journaux aux groupes de CloudWatch journaux.
Pour activer la livraison du journal S3 à partir du AWS CLI, utilisez la CloudWatchLoggingConfiguration configuration lorsque vous démarrez une session interactive.
aws athena start-session \ --work-group "WORKGROUP" \ --monitoring-configuration '{ "CloudWatchLoggingConfiguration": { "Enabled": true, "LogGroup": "/aws/athena/sessions/${workgroup}", "LogStreamNamePrefix": "session-" } }' --engine-configuration ''
Tous les journaux seront fournis par défaut, mais vous pouvez éventuellement spécifier les types de journaux à inclure.
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 ''
Autorisations requises pour la livraison du journal à CloudWatch
Avant que vos sessions puissent fournir des CloudWatch journaux à des groupes de journaux, incluez les autorisations suivantes dans la politique d'autorisation pour le rôle d'exécution.
{ "Action": [ "logs:CreateLogGroup", "logs:CreateLogStream", "logs:PutLogEvents", "logs:DescribeLogGroups", "logs:DescribeLogStreams" ], "Resource": "*", "Effect": "Allow" }
Et conformément à l'autorisation accordée à la politique de ressources clés de KMS.
{ "Effect": "Allow", "Principal": { "Service": "logs.<region>.amazonaws.com" }, "Action": [ "kms:Encrypt", "kms:Decrypt", "kms:ReEncrypt*", "kms:GenerateDataKey*", "kms:DescribeKey" ], "Resource": "*" }
Configuration des paramètres de journalisation par défaut au sein du groupe de travail
Vous pouvez également spécifier les options de journalisation par défaut au niveau du groupe de travail.
Pour spécifier les options de journalisation par défaut AWS CLI pour un groupe de travail, utilisez la monitoring-configuration configuration lors de la création d'un nouveau groupe de travail :
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" ] } } }'
Pour modifier les options de journalisation par défaut AWS CLI pour un groupe de travail, utilisez la monitoring-configuration configuration lors de la mise à jour d'un groupe de travail. Les modifications s'appliquent aux nouvelles sessions interactives à venir.
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" ] } } }'