kafka_2.13-3.1.0 去(ZK) 开启SASL_PLAIN执行命令报错

Panda 发表于: 2022-04-07   最后更新时间: 2022-04-07 17:48:01   4,538 游览

版本 kafka_2.13-3.1.0
按照教程开启SASL_PLAIN 认证

参考教程:
https://www.orchome.com/10461
https://www.orchome.com/1960

config/kraft/server.properties做了如下修改其他为默认配置:

node.id=1
delete.topic.enable=true
controller.quorum.voters=1@192.168.0.36:9093
controller.listener.names=CONTROLLER
log.dirs=/home/www/data/kafka_kraft
num.partitions=3
listeners=SASL_PLAINTEXT://192.168.0.36:9092,CONTROLLER://192.168.0.36:9093
inter.broker.listener.name=SASL_PLAINTEXT
advertised.listeners=SASL_PLAINTEXT://192.168.0.36:9092
sasl.mechanism.inter.broker.protocol=PLAIN
sasl.enabled.mechanisms=PLAIN

执行如下命令是正常的

bin/kafka-console-producer.sh --broker-list 192.168.0.36:9092 --topic test --producer.config config/producer.properties 
bin/kafka-console-consumer.sh --bootstrap-server 192.168.0.36:9092 --topic test --from-beginning --consumer.config config/consumer.properties

执行如下命令就会提示错误,无法达到预期结果

bin/kafka-topics.sh --list --bootstrap-server 192.168.0.36:9092
bin/kafka-topics.sh --bootstrap-server 192.168.0.36:9092 --delete --topic test

提示如下信息:

INFO [SocketServer listenerType=BROKER, nodeId=1] Failed authentication with /192.168.0.36 (Unexpected Kafka request of type METADATA during SASLhandshake.) (org.apache.kafka.common.network.Selector)

请问各大神多多指教,帮忙解决该问题

如有描述不清或者其他问题还请多指教

发表于 2022-04-07

执行命令前,先执行:

export KAFKA_OPTS="-Djava.security.auth.login.config=/etc/kafka/kafka_client_jaas.conf"
Panda -> 半兽人 2年前
export KAFKA_OPTS="-Djava.security.auth.login.config=/usr/local/kafka/config/kraft/kafka_client_jaas.conf"
bin/kafka-topics.sh --list --bootstrap-server 192.168.0.36:9092

这样执行还是不行,提示下面的内容:

INFO [SocketServer listenerType=BROKER, nodeId=1] Failed authentication with /192.168.0.36 (Unexpected Kafka request of type METADATA during SASL handshake.apache.kafka.common.network.Selector)

Panda -> 半兽人 2年前
export KAFKA_OPTS="-Djava.security.auth.login.config=/usr/local/kafka/config/kraft/kafka_client_jaas.conf"

bin/kafka-console-producer.sh --broker-list 192.168.0.36:9092 --topic test --producer.config config/producer.properties

bin/kafka-console-consumer.sh --bootstrap-server 192.168.0.36:9092 --from-beginning --topic test --consumer.config config/consumer.properties

执行这样发送消息,消费消息是没问题的,可以正常收发。

半兽人 -> Panda 2年前

消费者和生产者明显都有引入配置文件。

只能从 JAAS 文件加载 SASL 凭证。 其他客户端设置必须通过配置文件提供。 你还可以通过配置文件提供 SASL 凭据:

比如,创建一个文件config.properties,内容如下。

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

然后运行 kafka-topics.sh 就可以了:

./kafka-topics.sh --list --bootstrap-server 10.10.10.16:9092 --command-config config.properties

注意,使用 SASL_PLAINTEXT 时,您的凭据将通过网络以明文形式发送。 您应该启用 SSL 来加密客户端和代理之间的通信。

Panda -> 半兽人 2年前

非常感谢大佬 已经可以操作了

半兽人 -> Panda 2年前

采纳吧

你的答案

查看kafka相关的其他问题或提一个您自己的问题