View a markdown version of this page

Registrazione e monitoraggio delle sessioni di Apache Spark - Amazon Athena

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

Registrazione e monitoraggio delle sessioni di Apache Spark

A partire dalla versione 3.5 di Apache Spark, puoi specificare managed, Amazon S3 o logging come opzioni di registrazione. CloudWatch

Con la registrazione gestita e la registrazione S3, la tabella seguente elenca le posizioni dei log e la disponibilità dell'interfaccia utente che puoi aspettarti se scegli queste opzioni.

Opzione Registri degli eventi Registri di container Interfaccia utente dell'applicazione
Registrazione gestita (impostazione predefinita) Archiviato in un bucket S3 gestito Archiviato in un bucket S3 gestito Supportata
Sia la registrazione gestita che il bucket S3 Archiviato in entrambi i posti Conservato nel secchio S3 Supportata
Bucket Amazon S3 Conservato nel bucket S3 Conservato nel bucket S3 Non supportato 1

1 Ti suggeriamo di mantenere selezionata l'opzione di registrazione gestita. Altrimenti, non puoi utilizzare le interfacce utente integrate dell'applicazione.

Registrazione gestita

Per impostazione predefinita, i gruppi di lavoro Athena Spark archiviano i log delle applicazioni in modo sicuro in bucket S3 gestiti dal servizio per un massimo di 30 giorni.

È possibile fornire facoltativamente una chiave KMS (key id, arn, alias o alias arn) che il servizio utilizzerà per crittografare i log gestiti.

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

Se disattivi la registrazione gestita, Athena non può risolvere i problemi delle sessioni per tuo conto. Esempio: non potrai accedere ai notebook Amazon Spark-UI SageMaker AI Studio né utilizzare l'API. GetResourceDashboard

Per disattivare questa opzione da AWS CLI, utilizza la ManagedLoggingConfiguration configurazione quando avvii una sessione interattiva.

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

Autorizzazioni richieste per la registrazione gestita

Se hai fornito una chiave KMS, aggiungi l'entità del servizio Athena all'elenco delle autorizzazioni consentite nella politica delle autorizzazioni delle chiavi KMS.

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

Registrazione di Amazon S3

Puoi configurare la distribuzione dei log ai bucket Amazon S3.

Per abilitare la consegna dei log S3 da AWS CLI, utilizza la S3LoggingConfiguration configurazione all'avvio di una sessione interattiva.

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

Facoltativamente, puoi fornire una chiave KMS (key id, arn, alias o alias arn) che il servizio utilizzerà per crittografare i log S3.

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

Autorizzazioni richieste per la consegna dei log ad Amazon S3

Prima che le sessioni possano inviare i log ai bucket Amazon S3, includi le seguenti autorizzazioni nella politica delle autorizzazioni per il ruolo di esecuzione.

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

Se hai fornito una chiave KMS, avrai bisogno anche delle seguenti autorizzazioni nella politica delle autorizzazioni per il ruolo di esecuzione.

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

Se la chiave kms e il bucket non provengono dallo stesso account, KMS deve consentire l'entità del servizio 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 registrazione

È possibile configurare la consegna dei log ai gruppi di CloudWatch log.

Per abilitare la consegna dei log S3 da AWS CLI, utilizza la CloudWatchLoggingConfiguration configurazione quando avvii una sessione interattiva.

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

Tutti i log verranno consegnati per impostazione predefinita, ma è possibile specificare facoltativamente quali tipi di log includere.

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 ''

Autorizzazioni richieste per l'invio dei log a CloudWatch

Prima che le sessioni possano fornire i log ai gruppi di CloudWatch log, includi le seguenti autorizzazioni nella politica delle autorizzazioni per il ruolo di esecuzione.

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

E a seguito dell'autorizzazione alla politica sulle risorse chiave di KMS.

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

Configurazione delle impostazioni predefinite di registrazione nel gruppo di lavoro

È inoltre possibile specificare le opzioni di registrazione predefinite a livello di gruppo di lavoro.

Per specificare le opzioni di registrazione predefinite AWS CLI per un gruppo di lavoro, utilizza la monitoring-configuration configurazione durante la creazione di un nuovo gruppo di lavoro:

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" ] } } }'

Per modificare le opzioni di registrazione predefinite da AWS CLI per un gruppo di lavoro, utilizza la configurazione durante l'aggiornamento di un gruppo di lavoro. monitoring-configuration Le modifiche si applicano alle nuove sessioni interattive in 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" ] } } }'