more config/server.properties
listeners=SASL_PLAINTEXT://localhost:9092
security.inter.broker.protocol=SASL_PLAINTEXT
sasl.mechanism.inter.broker.protocol=PLAIN
sasl.enabled.mechanisms=PLAIN
more /etc/kafka/kafka_server_jaas.conf
KafkaServer {
org.apache.kafka.common.security.plain.PlainLoginModule required
username="admin"
password="admin-secret"
user_admin="admin-secret"
user_alice="alice-secret";
};
more /etc/kafka/kafka_client_jaas.conf
KafkaClient {
org.apache.kafka.common.security.plain.PlainLoginModule required
username="alice"
password="alice-secret";
};
consumer.properties 和 producer.properties
security.protocol=SASL_PLAINTEXT
sasl.mechanism=PLAIN
启动kafka
export KAFKA_OPTS='-Djava.security.auth.login.config=/etc/kafka/kafka_server_jaas.conf'
bin/kafka-server-start.sh config/server.properties
kafka消费者和生产者
export KAFKA_OPTS="-Djava.security.auth.login.config=/etc/kafka/kafka_client_jaas.conf"
bin/kafka-console-producer.sh --broker-list localhost:9092 --topic test --producer.config config/producer.properties
export KAFKA_OPTS="-Djava.security.auth.login.config=/etc/kafka/kafka_client_jaas.conf"
bin/kafka-console-consumer.sh --bootstrap-server localhost:9092 --topic test --consumer.config config/consumer.properties
本例说明文档参考
kafka使用SASL/PLAIN认证
请问我配置完zookeeper和kafka的sasl/plain认证后,启动kafka,有一个节点一直报错,
Failed authentication with /192.168.66.211 (Unexpected Kafka request of type METADATA during SASL handshake.) (org.apache.kafka.common.network.Selector)。
但是192.168.66.211这台服务器并不是zookeeper和kafka节点,请问这是什么原因?
客户端连接的?
不是,就是配置完后,启动kafka 服务server.log就报这个
我的意思是这个你不认识的地址,可能是从别的机器(192.168.66.211)连到kafka的时候,报的认证错误。
所以你先确认这个192.168.66.211的身份,是你公司的哪台机器属于谁的,可能是它一直连接kafka需要进行生产或者消费,而你加了认证之后,导致这台机器持续的连接重试,一直失败。
感谢,你提醒了我,在这台服务器上有个监控kafka集群状态的组件,它会一直向kafka发送请求
export KAFKA_OPTS='-Djava.security.auth.login.config=/etc/kafka/kafka_server_jaas.conf'
这个参数可以配置在/etc/profile里面么
可以,每次进入会加载。
请问这种报错是哪里用户名密码错了呢,检查了很多用户密码,都是一致的
这个错误太明确了,就是账密不对,也许你的账密都没有传递给kafka。
你好,应该怎么传递给kafka呢,我也是刚学习kafka,不是太了解
你客户端是什么?还是用的命令行。
客户端
带入到环境变量中:
然后执行:
已经解决了,十分感谢
请问用docker部署的这个,docker-compose文件应该怎么配置才行?我试了好多次,运行都是没认证的,不知道错在哪了。。好迷茫
这...比较细节了,仔细检查检查吧
有没有这方面的参考教程呢,3.0版本的
PLAINTEXT、SSL、 SASL_PLAINTEXT、 SASL_SSL。
你这个不是SASL_PLAINTEXT,而是SASL_PLAINTEXT + SSL的混合体
好像是根据官网上翻译过来的,然后把配置贴出来了
已更新