本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
Amazon MSK 記錄
您可以將 Apache Kafka 代理程式日誌交付至下列一或多個目的地類型:Amazon CloudWatch Logs、Amazon S3、Amazon Data Firehose。您也可以使用 記錄 Amazon MSK API 呼叫 AWS CloudTrail。
注意
代理程式日誌不適用於 Express 代理程式。
代理程式日誌
代理程式日誌可讓您針對 Apache Kafka 應用程式進行疑難排解,並分析與 MSK 叢集的通訊。您可以設定新的或現有的 MSK 叢集,將 INFO 層級代理程式日誌交付至下列一或多個類型的目的地資源:CloudWatch 日誌群組、S3 儲存貯體、Firehose 交付串流。然後,您可以透過 Firehose 將日誌資料從交付串流交付至 OpenSearch Service。您必須先建立目的地資源,才能設定叢集向其傳遞代理程式日誌。如果這些目的地資源尚未存在,Amazon MSK 不會為您建立它們。如需有關這三種目標資源類型以及如何建立這些資源的資訊,請參閱下列文件:
所需的許可
若要設定 Amazon MSK 代理程式日誌的目的地,您用於 Amazon MSK 動作的 IAM 身分必須具有 AWS 受管政策:AmazonMSKFullAccess 政策中所述的許可。
若要將代理程式日誌串流到 S3 儲存貯體,您也需要 s3:PutBucketPolicy
許可。如需有關 S3 儲存貯體政策的資訊,請參閱《Amazon S3 使用者指南》中的如何新增 S3 儲存貯體政策? 如需有關 IAM 政策的一般資訊,請參閱《IAM 使用者指南》的存取管理。
使用 SSE-KMS 儲存貯體所需的 KMS 金鑰政策
如果您使用受管金鑰 AWS KMS(SSE-KMS) 搭配客戶受管金鑰為 S3 儲存貯體啟用伺服器端加密,請將以下內容新增至 KMS 金鑰的金鑰政策,以便 Amazon MSK 可以將代理程式檔案寫入儲存貯體。
{ "Sid": "Allow Amazon MSK to use the key.", "Effect": "Allow", "Principal": { "Service": [ "delivery.logs.amazonaws.com" ] }, "Action": [ "kms:Encrypt", "kms:Decrypt", "kms:ReEncrypt*", "kms:GenerateDataKey*", "kms:DescribeKey" ], "Resource": "*" }
使用 設定代理程式日誌 AWS Management Console
如果您要建立新叢集,請在監控區段中尋找代理程式日誌交付標題。您可以指定想要 Amazon MSK 向其傳遞代理程式日誌的目標。
針對現有叢集,請從您的叢集清單中選擇叢集,然後選擇屬性索引標籤。向下捲動到日誌交付區段,然後選擇其編輯按鈕。您可以指定想要 Amazon MSK 向其傳遞代理程式日誌的目標。
使用 設定代理程式日誌 AWS CLI
當您使用 create-cluster
或 update-monitoring
命令時,可以選擇指定 logging-info
參數,並向其傳遞 JSON 結構,如以下範例所示。在此 JSON 中,所有三種目標類型都是選用的。
{ "BrokerLogs": { "S3": { "Bucket": "amzn-s3-demo-bucket", "Prefix": "ExamplePrefix", "Enabled": true }, "Firehose": { "DeliveryStream": "ExampleDeliveryStreamName", "Enabled": true }, "CloudWatchLogs": { "Enabled": true, "LogGroup": "ExampleLogGroupName" } } }
使用 API 設定代理程式日誌
您可以指定要傳遞給 CreateCluster 或 UpdateMonitoring 操作之 JSON 的可選 loggingInfo
結構。
注意
根據預設,啟用代理程式日誌後,Amazon MSK 會記錄 INFO
層級日誌至指定的目的地。然而,Apache Kafka 2.4.X 及更高版本的使用者可以將代理程式日誌層級動態設定為任何 log4j 日誌層級DEBUG
或 TRACE
,我們建議您使用 Amazon S3 或 Firehose 作為日誌目的地。如果您使用 CloudWatch Logs 為日誌目的地,並且動態啟用 DEBUG
或 TRACE
層級日誌,Amazon MSK 可能會持續傳遞日誌樣本。這可能會大幅影響代理程式效能,只有在 INFO
日誌層級不夠詳細、無法判斷問題的根本原因時才應該使用方法。