本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
Amazon MSK 日志记录
您可以将 Apache Kafka 代理日志传送至以下一种或多种目标类型:Amazon L CloudWatch ogs、Amazon S3、Amazon Data Firehose。您也可以使用记录 Amazon MSK API 调用。 Amazon CloudTrail
注意
Express 经纪人上没有经纪人日志。
代理日志
利用代理日志,您可以对 Apache Kafka 应用程序进行问题排查,并分析它们与 MSK 集群的通信。您可以配置新的或现有的 MSK 集群,以便将 INFO 级代理日志传送至以下一种或多种类型的目标资源: CloudWatch 日志组、S3 存储桶、Firehose 传输流。然后,您可以通过 Firehose 将日志数据从传输流传送至 Service。 OpenSearch 在配置集群以向其传送代理日志之前,必须创建目标资源。如果尚不存在这些目标资源,Amazon MSK 也不会为您创建。有关这三种类型的目标资源以及如何创建这些资源的信息,请参阅以下文档:
所需的权限
要为 Amazon MSK 代理日志配置目标,您用于 Amazon MSK 操作的 IAM 身份必须具有 Amazon 托管策略:Amazon A MSKFull ccess 策略中所述的权限。
要将代理日志流式传输到 S3 存储桶,您还需要 s3:PutBucketPolicy
权限。有关 S3 存储桶策略的信息,请参阅《Amazon S3 用户指南》中的如何添加 S3 存储桶策略?。有关 IAM 策略的一般信息,请参阅《IAM 用户指南》中的访问管理。
与 SSE-KMS 存储桶结合使用时必需的 KMS 密钥政策
如果使用具有客户托管密钥的 Amazon KMS托管密钥(SSE-KMS)为 S3 存储桶启用了服务器端加密,请将以下内容添加到 CMK 密钥的密钥政策中,以便 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": "*" }
使用配置代理日志 Amazon Web Services Management Console
如果您要创建新集群,请在监控部分中查找代理日志传送标题。您可以指定希望 Amazon MSK 向其传送代理日志的目标。
对于现有集群,请从集群列表中选择集群,然后选择属性选项卡。向下滚动到日志传送部分,然后选择其编辑按钮。您可以指定希望 Amazon MSK 向其传送代理日志的目标。
使用配置代理日志 Amazon 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 配置代理日志
您可以在 JSON 中指定传递给CreateCluster或UpdateMonitoring操作的可选loggingInfo
结构。
注意
默认情况下,启用代理日志记录后,Amazon MSK 会将 INFO
级别日志记录到指定目标。但是,Apache Kafka 2.4.X 及更高版本的用户可以将代理日志级别动态设置为任何 log4j 日志级别DEBUG
或 TRACE
,我们建议使用 Amazon S3 或 Firehose 作为日志目标。如果您使用 CloudWatch 日志作为日志目标,并动态启用日志DEBUG
或TRACE
级别日志记录,Amazon MSK 可能会持续提供日志示例。这可能会对代理性能带来显著影响,因此只有在 INFO
日志级别不够详细,无法确定问题的根本原因时才应使用。