View a markdown version of this page

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 Apache Spark-Version 3.5 können Sie Managed, Amazon S3 oder CloudWatch Logging als Protokollierungsoptionen 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 ausgewählt lassen. Andernfalls können Sie die integrierten Benutzeroberflächen der Anwendung nicht verwenden.

Verwaltete Protokollierung

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

Sie können optional einen KMS-Schlüssel (Schlüssel-ID, ARN, Alias oder Alias ARN) angeben, den der Dienst zum Verschlüsseln 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 Spark-UI von Amazon SageMaker AI Studio Notebooks oder über die GetResourceDashboard API darauf zugreifen können.

Um diese Option aus dem auszuschalten 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 verwaltete Protokollierung

Wenn Sie einen KMS-Schlüssel angegeben haben, fügen Sie den Athena-Dienstprinzipal zur Zulassungsliste in der KMS-Schlüsselberechtigungsrichtlinie hinzu.

{ "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" } } }

Amazon S3-Protokollierung

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

Verwenden Sie die S3LoggingConfiguration Konfiguration, wenn Sie eine interaktive Sitzung starten AWS CLI, um die S3-Protokollzustellung über zu aktivieren.

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 Übermittlung von Protokollen an Amazon S3

Bevor Ihre Sitzungen Protokolle an Amazon S3-Buckets übermitteln 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 von 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 an CloudWatch Protokollgruppen konfigurieren.

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

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 nach der Genehmigung der 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 Standard-Protokollierungsoptionen AWS CLI für eine Arbeitsgruppe festzulegen, verwenden Sie beim Erstellen einer neuen Arbeitsgruppe die 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, wenn Sie eine Arbeitsgruppe aktualisieren. Die Änderungen gelten künftig 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" ] } } }'