kafka配置用户名密码开启认证后 命令行工具报错无法使用

kafka 开启认证模式,命令行工具kafka-console-producer.sh kafka-console-consumer.sh无法使用报错

kafka的配置

测试环境kafka配置了认证模式
security.inter.broker.protocol=SASL_PLAINTEXT
sasl.enabled.mechanisms=PLAIN
在这里插入图片描述
此时,如果直接运行 生产者命令行

bin/kafka-console-producer.sh --broker-list localhost:9092 --topic test

可能会有如下报错

[2022-11-03 10:53:32,911] WARN [Producer clientId=console-producer] 
Connection to node -1 (localhost/127.0.0.1:9092) could not be established. 
Broker may not be available. (org.apache.kafka.clients.NetworkClient)

运行 消费组命令行工具,也会报错

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

原因

由于 kafka开启了认证,如果命令行工具中 不加认证参数,就没有办法成功链接

修改

修改生产者命令行

bin/kafka-console-producer.sh --broker-list localhost:9092 --topic test-topic --producer-property security.protocol=SASL_PLAINTEXT --producer-property sasl.mechanism=PLAIN

修改消费组命令行

bin/kafka-console-consumer.sh --bootstrap-server localhost:9092 --topic test --from-beginning --consumer-property security.protocol=SASL_PLAINTEXT --consumer-property sasl.mechanism=PLAIN
### 配置Kafka中的用户名密码认证 #### 使用JAAS配置文件进行SASL/PLAIN认证 为了使Kafka服务器支持基于用户名密码的身份验证,可以在`config`目录下创建名为`kafka-server-jaas.conf`的JAAS配置文件[^1]。此文件定义了用于身份验证机制的具体参数: ```properties KafkaServer { org.apache.kafka.common.security.plain.PlainLoginModule required username="admin" password="xxxxxx" user_admin="xxxxxx"; }; ``` 上述配置指定了使用`PlainLoginModule`作为登录模块,并设置了管理员账户及其对应的密码。 #### 动态设置SCRAM-SHA-512机制下的凭证 另一种方法是通过修改Jaas配置来启用更安全的SCRAM协议来进行用户认证[^2]。这涉及到更改或新增一段类似的条目到服务端的安全配置里: ```properties KafkaServer { org.apache.kafka.common.security.scram.ScramLoginModule required username="admin" password="admin123"; }; ``` 这里选择了`ScramLoginModule`并设定了相应的管理账号信息。 #### Docker环境中客户端连接时应用认证 当利用Docker容器运行单节点模式下的Kafka实例时,则需额外准备一个供生产者与消费者使用的`client.properties`文件[^3]。该文件应包含必要的安全性选项以匹配服务器端所采用的身份验证方式: ```bash cat <<EOF > client.properties security.protocol=SASL_PLAINTEXT sasl.mechanism=PLAIN sasl.jaas.config=org.apache.kafka.common.security.plain.PlainLoginModule required \ username="admin" \ password="admin-secret"; EOF ``` 这段脚本会生成一个带有适当属性设定的客户端配置文档,允许外部程序依据这些设置建立经过鉴权后的通信链路至Kafka集群。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值