Protokollierung und Überwachung von Apache Spark-Sitzungen - Amazon Athena

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

Protokollierung und Überwachung von Apache Spark-Sitzungen

Ab der Version Apache Spark Version 3.5 können Sie Managed, Amazon S3 oder CloudWatch Logging als Logging-Optionen angeben.

Bei verwalteter Protokollierung und S3-Protokollierung sind in der folgenden Tabelle die Protokollspeicherorte und die Verfügbarkeit der Benutzeroberfläche aufgeführt, die Sie erwarten können, wenn Sie diese Optionen wählen.

Option Ereignisprotokolle Containerprotokolle Benutzeroberfläche der Anwendung
Verwaltete Protokollierung (Standard) Im verwalteten S3-Bucket gespeichert Im verwalteten S3-Bucket gespeichert Unterstützt
Sowohl verwaltete Protokollierung als auch S3-Bucket An beiden Orten gespeichert Im S3-Bucket gespeichert Unterstützt
Amazon-S3-Bucket Im S3-Bucket gespeichert Im S3-Bucket gespeichert Nicht unterstützt 1

1 Wir empfehlen, dass Sie die Option Verwaltete Protokollierung aktiviert lassen. Andernfalls können Sie die integrierte Anwendung nicht verwenden UIs.

Verwaltete Protokollierung

Standardmäßig speichert Athena Spark Workgroups Anwendungsprotokolle sicher für maximal 30 Tage in serviceverwalteten S3-Buckets.

Sie können optional einen KMS-Schlüssel (Schlüssel-ID, ARN, Alias oder Alias-ARN) angeben, den der Dienst zur Verschlüsselung der verwalteten Protokolle verwendet.

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

Wenn Sie die verwaltete Protokollierung deaktivieren, kann Athena in Ihrem Namen keine Fehler in Ihren Sitzungen beheben. Beispiel: Sie werden nicht über Amazon SageMaker AI Studio Notebooks oder über die API auf die GetResourceDashboard Spark-UI zugreifen.

Um diese Option von aus zu deaktivieren AWS CLI, verwenden Sie die ManagedLoggingConfiguration Konfiguration, wenn Sie eine interaktive Sitzung starten.

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

Erforderliche Berechtigungen für die verwaltete Protokollierung

Wenn Sie einen KMS-Schlüssel angegeben haben, benötigen Sie die folgenden Berechtigungen in der Berechtigungsrichtlinie für die Ausführungsrolle.

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

Amazon S3 S3-Protokollierung

Sie können die Protokollzustellung an Amazon S3 S3-Buckets konfigurieren.

Um die S3-Protokollzustellung von zu aktivieren AWS CLI, verwenden Sie die S3LoggingConfiguration Konfiguration, wenn Sie eine interaktive Sitzung starten.

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

Sie können optional einen KMS-Schlüssel (Schlüssel-ID, ARN, Alias oder Alias-ARN) angeben, den der Dienst zum Verschlüsseln der S3-Protokolle verwendet.

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

Erforderliche Berechtigungen für die Protokollzustellung an Amazon S3

Bevor Ihre Sitzungen Protokolle an Amazon S3 S3-Buckets liefern können, müssen Sie die folgenden Berechtigungen in die Berechtigungsrichtlinie für die Ausführungsrolle aufnehmen.

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

Wenn Sie einen KMS-Schlüssel angegeben haben, benötigen Sie außerdem die folgenden Berechtigungen in der Berechtigungsrichtlinie für die Ausführungsrolle.

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

Wenn der KMS-Schlüssel und der Bucket nicht aus demselben Konto stammen, muss KMS den S3-Dienstprinzipal zulassen.

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

CloudWatch Protokollierung

Sie können die Protokollzustellung für CloudWatch Protokollgruppen konfigurieren.

Verwenden Sie die CloudWatchLoggingConfiguration Konfiguration, wenn Sie eine interaktive Sitzung starten AWS CLI, um die S3-Protokollzustellung von zu aktivieren.

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

Alle Protokolle werden standardmäßig übermittelt, Sie können jedoch optional angeben, welche Protokolltypen eingeschlossen werden sollen.

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

Erforderliche Berechtigungen für die Protokollzustellung an CloudWatch

Bevor Ihre Sitzungen Protokolle an CloudWatch Protokollgruppen übermitteln können, müssen Sie die folgenden Berechtigungen in die Berechtigungsrichtlinie für die Ausführungsrolle aufnehmen.

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

Und dann die Genehmigung für die KMS-Schlüsselressourcenrichtlinie.

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

Konfiguration der Standardeinstellungen für die Protokollierung in der Arbeitsgruppe

Sie können auch Standardprotokollierungsoptionen auf Arbeitsgruppenebene angeben.

Um die Standardprotokollierungsoptionen AWS CLI für eine Arbeitsgruppe anzugeben, verwenden Sie beim Erstellen einer neuen Arbeitsgruppe die folgende monitoring-configuration Konfiguration:

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

Um die standardmäßigen Protokollierungsoptionen AWS CLI für eine Arbeitsgruppe zu ändern, verwenden Sie die monitoring-configuration Konfiguration beim Aktualisieren einer Arbeitsgruppe. Die Änderungen gelten ab sofort für neue interaktive Sitzungen.

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