为什么 Debezium 连接器无法连接到 SASL 激活的代理?

Why Debezium Connector can't connect to a SASL activated broker?

我正在尝试为我的 Kafka 系统启用 SASL/PLAIN。它实际上有效,我已经为 Schema Registry 和 Java 生产者测试了它。问题是 Kafka Connect 在启用 SASL 时无法建立连接(至少我一开始是这么想的)。我提供了必要的配置,但看起来它根本没有影响。我已将 connect-avro-distributed.properties 文件编辑为:

sasl.mechanism=PLAIN
security.protocol=SASL_PLAINTEXT
sasl.jaas.config=org.apache.kafka.common.security.plain.PlainLoginModule required \
  username="admin" \
  password="secret";

producer.sasl.mechanism=PLAIN
producer.security.protocol=SASL_PLAINTEXT
producer.sasl.jaas.config=org.apache.kafka.common.security.plain.PlainLoginModule required \
  username="admin" \
  password="secret";

consumer.sasl.mechanism=PLAIN
consumer.security.protocol=SASL_PLAINTEXT
consumer.sasl.jaas.config=org.apache.kafka.common.security.plain.PlainLoginModule required \
  username="admin" \
  password="secret";

但是在日志中它说:

[2022-01-07 12:21:28,645] INFO ProducerConfig values:
        sasl.mechanism = GSSAPI
        security.protocol = PLAINTEXT

应该是这样的:

[2022-01-07 12:21:28,645] INFO ProducerConfig values:
        sasl.mechanism = PLAIN
        security.protocol = SASL_PLAINTEXT

消费者配置相同。我需要做什么?为什么要使用默认值?我已经多次重新启动该服务。提前致谢。

编辑:还有另一个连接器运行没有任何问题,它具有正确的 SASL 配置。

Edit2:看起来 Debezium 连接器需要在连接器端进行更多配置。

尝试使用不同的连接器清楚地表明存在 Debezium 特定问题。由于 Debezium 使用历史主题,因此在启用安全性时需要一些额外的配置。

"database.history.consumer.security.protocol": "SASL_PLAINTEXT",
"database.history.consumer.sasl.mechanism": "PLAIN",
"database.history.consumer.sasl.jaas.config": "org.apache.kafka.common.security.plain.PlainLoginModule required username=\"admin\" password=\"secret\";",
"database.history.producer.security.protocol": "SASL_PLAINTEXT",
"database.history.producer.sasl.mechanism": "PLAIN",
"database.history.producer.sasl.jaas.config": "org.apache.kafka.common.security.plain.PlainLoginModule required username=\"admin\" password=\"secret\";"

您需要覆盖 Debezium 连接器的生产者和消费者配置的默认值。如果您使用 SSL,则需要添加几行。更多信息:https://docs.confluent.io/debezium-connect-sqlserver-source/current/sqlserver_source_connector_config.html