Warum schreibt mein AWS Glue-Job keine Protokolle in Amazon CloudWatch?

Lesedauer: 4 Minute
0

Mein AWS Glue-Auftrag zum Extrahieren, Laden und Transformieren (ETL) schreibt keine Protokolle in Amazon CloudWatch.

Kurzbeschreibung

Wenn Ihre AWS Glue-Jobs keine Protokolle an CloudWatch übermitteln, überprüfen Sie Folgendes:

  • Stellen Sie sicher, dass Ihr AWS Glue-Job über alle erforderlichen AWS Identity and Access Management (IAM) -Berechtigungen verfügt.
  • Stellen Sie sicher, dass der Schlüssel des AWS Key Management Service (AWS KMS) es dem CloudWatch Logs-Service ermöglicht, den Schlüssel zu verwenden.
  • Vergewissern Sie sich, dass die IAM-Berechtigung logs:AssociateKMSKey mit der AWS Glue-Rolle verknüpft ist.
  • Wenn Sie die kontinuierliche Protokollierung für Ihren AWS Glue Spark-ETL-Job nicht aktiviert haben, überprüfen Sie vor der Protokollaggregation, ob der Job fehlgeschlagen ist.
  • Vergewissern Sie sich, dass Sie die richtige CloudWatch-Protokollgruppe überprüfen.

Behebung

Der AWS Glue-Jobrolle fehlen IAM-Berechtigungen zum Erstellen und Schreiben in die CloudWatch-Protokollgruppe

Wenn Sie die verwaltete AwsGlueServiceRole-Richtlinie nicht verwenden, stellen Sie sicher, dass die dem ETL-Job zugeordnete IAM-Rolle über die folgenden erforderlichen Berechtigungen für die Interaktion mit CloudWatch verfügt. Wenn der Job eine benutzerdefinierte Protokollgruppe verwendet, muss die IAM-Richtlinie Zugriff auf die benutzerdefinierte Protokollgruppe gewähren.

{
    "Effect": "Allow",
    "Action": "cloudwatch:PutMetricData",
    "Resource": [
        "*"
    ]
},
{
    "Effect": "Allow",
    "Action": [
        "logs:CreateLogGroup",
        "logs:CreateLogStream",
        "logs:PutLogEvents"
    ],
    "Resource": [
        "arn:aws:logs:*:*:/aws-glue/*",
        "arn:aws:logs:*:*:/customlogs/*"
    ]
}

Achten Sie darauf, arn:aws:logs:*:*: /customlogs/*durch den ARN der benutzerdefinierten Loggruppe zu ersetzen.

Der verwendete AWS-KMS-Schlüssel gewährt nicht die erforderlichen Berechtigungen für den CloudWatch Logs-Service

Wenn Sie Sicherheitskonfigurationenmit Ihrem AWS Glue-Job verwenden, stellen Sie sicher, dass der an die Sicherheitskonfiguration angehängte AWS KMS-Schlüssel dem CloudWatch Logs-Service die Verwendung des Schlüssels ermöglicht. Hängen Sie die folgende Richtlinie an den AWS KMS-Schlüssel an:

{
    "Effect": "Allow",
    "Principal": {
        "Service": "logs.region.amazonaws.com"
    },
    "Action": [
        "kms:Encrypt*",
        "kms:Decrypt*",
        "kms:ReEncrypt*",
        "kms:GenerateDataKey*",
        "kms:Describe*"
    ],
    "Resource": "*",
    "Condition": {
        "ArnEquals": {
            "kms:EncryptionContext:aws:logs:arn": "arn:aws:logs:us-west-2:1111222233334444:log-group:log-group-name"
        }
    }
}

Achten Sie darauf, die folgenden Punkte in der Richtlinie zu ersetzen:

  • us-west-2mit der AWS-Region Ihrer Wahl
  • 1111222233334444mit Ihrer AWS-Konto-ID.
  • log-group-namemit dem Namen Ihrer Loggruppe.

Weitere Informationen finden Sie unter Verschlüsseln von Protokolldaten in CloudWatch Logs mithilfe des AWS Key Management Service.

Stellen Sie außerdem sicher, dass die IAM-Berechtigung logs:AssociateKMSKey mit der AWS Glue-Rolle verknüpft ist. Weitere Informationen finden Sie unter Sicherheitskonfiguration mit kontinuierlicher Protokollierung.

Die kontinuierliche Protokollierung ist für Ihren AWS Glue Spark ETL-Job nicht aktiviert

Wenn Sie die kontinuierliche Protokollierung für Ihren AWS Glue Spark-ETL-Job nicht aktiviert haben, erfolgt die Protokollaggregation, nachdem die Auftragsausführung abgeschlossen ist. Wenn der Job vor der Protokollaggregation fehlschlägt, werden die Protokolle möglicherweise nicht an CloudWatch übertragen. Um sicherzustellen, dass die Protokolle unabhängig von Anwendungsausfällen gefüllt werden, können Sie die kontinuierliche Protokollierung für Ihre AWS Glue-Jobs aktivieren.

Sie suchen nicht nach den Protokollen in der richtigen Protokollgruppe

Beachten Sie die folgenden Dinge, wenn Sie nach den CloudWatch Logs suchen:

  • Wenn Sie die kontinuierliche Protokollierung aktiviert haben und die Standard-Protokollgruppen verwenden, werden benutzerdefinierte Meldungen, z. B. die von Print-Anweisungen, an die Protokollgruppe /aws-glue/jobs/output weitergeleitet.
  • Wenn Sie die kontinuierliche Protokollierung aktiviert haben und die Standard-Protokollgruppen verwenden, werden die von den Loggern ausgegebenen Meldungen in die Treiberprotokolle unter /aws-glue/jobs/logs-v2 übertragen.
  • Wenn Sie die kontinuierliche Protokollierung aktiviert haben und die Standard-Protokollgruppen verwenden, übertragen Jobs, die Sicherheitskonfigurationen verwenden, benutzerdefinierte Nachrichten an /aws-glue/jobs/logs-v2-testconfig. Achten Sie darauf, testconfig durch den Namen der Sicherheitskonfiguration zu ersetzen.
  • Wenn Sie die kontinuierliche Protokollierung aktiviert haben und benutzerdefinierte Protokollgruppen verwenden, finden Sie die benutzerdefinierten Protokollmeldungen zusammen mit den Treiber- und Ausführerprotokollen unter der benutzerdefinierten Protokollgruppe.
  • Wenn Sie die kontinuierliche Protokollierung nicht aktiviert haben, finden Sie Meldungen wie Print-Statement-Ausgaben unter /aws-glue/jobs/output und alle benutzerdefinierten Meldungen aus dem Logger unter /aws-glue/jobs/error.

Weitere Informationen finden Sie unter Verhalten protokollieren.


Verwandte Informationen

Protokollierung und Überwachung in AWS Glue

Ausführung und Überwachung in AWS Glue

AWS OFFICIAL
AWS OFFICIALAktualisiert vor 3 Jahren