為什麼我的 AWS Glue 作業不會將日誌寫入 Amazon CloudWatch?

2 分的閱讀內容
0

我的 AWS Glue 擷取、載入和轉換 (ETL) 作業不會將日誌寫入 Amazon CloudWatch。

簡短描述

如果您的 AWS Glue 作業未將日誌推送到 CloudWatch,請檢查下列各項:

  • 確定您的 AWS Glue 作業具有所有必要的 AWS 身分和存取管理 (IAM) 權限。
  • 確定 AWS Key Management Service (KMS) 金鑰允許 CloudWatch 日誌服務使用金鑰。
  • 確定 IAM 權限 logs:AssociateKmsKey 已附加至 AWS Glue 角色。
  • 如果您尚未開啟 AWS Glue Spark ETL 作業的連續日誌記錄功能,請在日誌彙總之前檢查作業是否失敗。
  • 確定您檢查的是正確的 CloudWatch 日誌群組。

解決方法

AWS Glue 作業角色缺少 IAM 權限,無法建立和寫入 CloudWatch 日誌群組

如果您沒有使用受管的 AWsGlueSlueSerole 政策,請確定附加至 ETL 作業的 IAM 角色具有下列必要的權限,可與 CloudWatch 互動。如果作業使用自訂日誌群組,則 IAM 政策必須提供對自訂日誌群組的存取權。

{
    "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/*"
    ]
}

請務必將 arn:aws:logs:*:*:/customlogs/* 替換為自訂日誌群組的 ARN。

使用的 AWS KMS 金鑰不會將所需的權限授予 CloudWatch Logs 服務

如果您將安全組態與 AWS Glue 作業搭配使用,請確保附加至安全組態的 AWS KMS 金鑰允許 CloudWatch Logs 服務使用金鑰。將下列政策附加到 AWS KMS 金鑰:

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

請務必在政策中替換下列項目:

  • us-west-2 替換為您選擇的 AWS 區域
  • 1111222233334444 替換為您的 AWS 帳戶識別碼。
  • log-group-name 替換為您的日誌群組名稱。

如需詳細資訊,請參閱使用 AWS Key Management Service 加密CloudWatch Logs 中的日誌資料

此外,確定 IAM 權限 logs:AssociateKmsKey 已附加至 AWS Glue 角色。如需詳細資訊,請參閱具有連續日誌記錄的安全組態

對 AWS Glue Spark ETL 作業未開啟連續日誌記錄功能

如果您尚未對 AWS Glue Spark ETL 作業開啟連續日誌記錄功能,則會在作業執行完成後進行記錄彙總。如果作業在記錄彙總之前失敗,則可能無法將記錄推送到 CloudWatch。為了確保無論應用程式是否失敗都會填入日誌,您可以為 AWS Glue 作業開啟連續日誌記錄

您沒有在正確的日誌群組中尋找日誌

尋找 CloudWatch 日誌時,請記住下列事項:

  • 如果您開啟連續日誌記錄功能並使用預設日誌群組,則自訂訊息 (例如來自列印語句的訊息) 會推送至 /aws-glue/jobs/output 日誌群組
  • 如果您開啟連續日誌記錄功能並使用預設日誌群組,則日誌記錄器所發出的訊息會被推送到 /aws-glue/jobs/logs-v2下的驅動程式日誌中。
  • 如果您開啟連續記錄功能並使用預設記錄群組,則使用安全組態的任務會將自訂訊息推送至 ** /aws-glue/jobs/logs-v2-testconfig**。確保將 testconfig 替換為安全組態名稱。
  • 如果您開啟連續日誌記錄功能並使用自訂日誌群組,則可以在自訂日誌群組下找到自訂日誌訊息以及驅動程式和執行器日誌。
  • 如果您沒有開啟連續日誌記錄,則可以在 /aws-glue/jobs/output 下找到訊息,例如列印語句輸出,以及在 /aws-glue/jobs/error 下的記錄器中找到所有自訂訊息。

如需詳細資訊,請參閱日誌記錄行為


相關資訊

AWS Glue 中的日誌記錄和監控

AWS Glue 中的執行和監控

AWS 官方
AWS 官方已更新 3 年前