

本文属于机器翻译版本。若本译文内容与英语原文存在差异，则一律以英文原文为准。

# 为 MSK Connect 进行日志记录
<a name="msk-connect-logging"></a>

MSK Connect 可以写入可用于调试连接器的日志事件。创建连接器时，您可以指定零个或多个以下日志目标：
+ Amazon CloudWatch 日志：您可以指定希望 MSK Connect 将连接器的日志事件发送到哪个日志组。有关如何创建日志组的信息，请参阅《[日志*用户指南》中的创建CloudWatch 日志*组](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/Working-with-log-groups-and-streams.html#Create-Log-Group)。
+ Amazon S3：您可以指定希望 MSK Connect 向其发送连接器日志事件的 S3 存储桶。有关如何创建 S3 存储桶的信息，请参阅《Amazon S3 用户指南》**中的[创建存储桶](https://docs.aws.amazon.com/AmazonS3/latest/userguide/create-bucket-overview.html)。
+ Amazon Data Firehose：您可以指定希望 MSK Connect 向其发送连接器日志事件的传输流。有关如何创建传输流的信息，请参阅《*Firehose 用户指南*》中的 [Creating an Amazon Data Firehose delivery stream](https://docs.aws.amazon.com/firehose/latest/dev/basic-create.html)。

要了解有关设置日志记录的更多信息，请参阅《Amazon CloudWatch Logs 用户指南》**中的[启用从某些 AWS 服务进行日志记录](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/AWS-logs-and-resource-policy.html)。

MSK Connect 会发出以下类型的日志事件：


****  

| 级别 | 说明 | 
| --- | --- | 
| INFO | 启动和关闭时感兴趣的运行时系统事件。 | 
| WARN | 不是错误但不希望出现或意外的运行时系统情况。 | 
| FATAL | 导致过早终止的严重错误。 | 
| ERROR | 非致命的意外情况和运行时系统错误。 | 

以下是发送到 Log CloudWatch s 的日志事件的示例：

```
[Worker-0bb8afa0b01391c41] [2021-09-06 16:02:54,151] WARN [Producer clientId=producer-1] Connection to node 1 (b-1.my-test-cluster.twwhtj.c2.kafka.us-east-1.amazonaws.com/INTERNAL_IP) could not be established. Broker may not be available. (org.apache.kafka.clients.NetworkClient:782)
```

## 防止连接器日志中出现秘密
<a name="msk-connect-logging-secrets"></a>

**注意**  
如果插件未将敏感配置值定义为秘密，则这些值可能会出现在连接器日志中。Kafka Connect 对未定义的配置值的处理方式与任何其他明文值相同。

如果您的插件将某个属性定义为秘密，则 Kafka Connect 会从连接器日志中编辑该属性的值。例如，以下连接器日志表明，如果插件将 `aws.secret.key` 定义为 `PASSWORD` 类型，则其值将替换为 `[hidden]`。

```
    2022-01-11T15:18:55.000+00:00    [Worker-05e6586a48b5f331b] [2022-01-11 15:18:55,150] INFO SecretsManagerConfigProviderConfig values:
    2022-01-11T15:18:55.000+00:00    [Worker-05e6586a48b5f331b] aws.access.key = my_access_key
    2022-01-11T15:18:55.000+00:00    [Worker-05e6586a48b5f331b] aws.region = us-east-1
    2022-01-11T15:18:55.000+00:00    [Worker-05e6586a48b5f331b] aws.secret.key = [hidden]
    2022-01-11T15:18:55.000+00:00    [Worker-05e6586a48b5f331b] secret.prefix =
    2022-01-11T15:18:55.000+00:00    [Worker-05e6586a48b5f331b] secret.ttl.ms = 300000
    2022-01-11T15:18:55.000+00:00    [Worker-05e6586a48b5f331b] (com.github.jcustenborder.kafka.config.aws.SecretsManagerConfigProviderConfig:361)
```

为防止连接器日志文件中出现秘密，插件开发人员必须使用 Kafka Connect 枚举常量 [https://kafka.apache.org/27/javadoc/org/apache/kafka/common/config/ConfigDef.Type.html#PASSWORD](https://kafka.apache.org/27/javadoc/org/apache/kafka/common/config/ConfigDef.Type.html#PASSWORD) 来定义敏感属性。当属性为类型 `ConfigDef.Type.PASSWORD` 时，Kafka Connect 会将其值从连接器日志中排除，即使该值以明文形式发送也一样。