Kafka 3.4.0启用SASL_PLAINTEXT后执行kafka-metadata-quorum.sh报错求助
Kafka 3.4.0中kafka-metadata-quorum.sh执行SASL认证报错的原因与解决方法
报错原因
kafka-metadata-quorum.sh工具在连接bootstrap-server时,未正确触发SASL握手流程,直接向SASL_PLAINTEXT监听端口发送了METADATA请求。而SASL_PLAINTEXT要求客户端必须先完成SASL认证,才能处理业务请求,因此broker拒绝该请求并抛出错误。- 对比
kafka-topics.sh能正常工作,是因为该工具的客户端逻辑会严格按照配置的SASL参数完成握手后再发送请求;但kafka-metadata-quorum.sh在3.4.0版本中存在逻辑差异,默认未正确加载command-config中的SASL配置来启动认证流程。
解决方法
- 显式指定工具使用的listener名称
执行命令时添加--listener-name SASL_PLAINTEXT参数,强制工具触发SASL认证流程,修改后的命令如下:./kafka-metadata-quorum.sh --bootstrap-server 192.168.3.138:9092 --command-config kafka_server_config.conf --listener-name SASL_PLAINTEXT describe --status - 检查command-config配置完整性
确保kafka_server_config.conf包含完整的SASL配置项,示例配置如下:
确认配置参数与broker端的JAAS配置完全匹配,无遗漏项。security.protocol=SASL_PLAINTEXT sasl.mechanism=PLAIN sasl.jaas.config=org.apache.kafka.common.security.plain.PlainLoginModule required username="your-username" password="your-password"; - 升级Kafka版本(可选)
该工具的逻辑问题在Kafka 3.5.0及以上版本中已被修复,若集群维护条件允许,升级到新版本可彻底避免此类工具逻辑不一致的问题。
内容的提问来源于stack exchange,提问作者Yj Jia
相关产品推荐
相关产品推荐

