背景这里kafka使用的是单独部署的zookeeper 需要走认证配置
我这里使用的zookeeper版本是3.8.3 kafka 3.4.0
kafka安装目录:/usr/local/bin/xx/kafka
zookeeper安装目录:/usr/local/bin/xx/zookeeper
- 1.KAFKA:
- 在server.properties 调整
- 改动之前:
- listeners=SASL_PLAINTEXT://0.0.0.0:9092
- advertised.listeners=SASL_PLAINTEXT://x.x.x.x:9092
- 改动之后:
- listeners=SASL_PLAINTEXT://0.0.0.0:9092
- advertised.listeners=SASL_PLAINTEXT://x.x.x.x:9092
- security.inter.broker.protocol=SASL_PLAINTEXT
- sasl.enabled.mechanisms=PLAIN
- sasl.mechanism.inter.broker.protocol=PLAIN
- authorizer.class.name=kafka.security.authorizer.AclAuthorizer
- allow.everyone.if.no.acl.found=true
- zookeeper.client.sasl=true
- 2.ZOOKEEPER:
- 直接在zoo.cfg 最后增加authProvider.1=org.apache.zookeeper.server.auth.SASLAuthenticationProvider
- requireClientAuthScheme=sasl
- jaasLoginRenew=3600000
- 1.在kafka安装目录创建文件/usr/local/bin/xx/kafka/config/
- touch kafka_server_jaas.conf
- 内容如下:
- KafkaServer {
- org.apache.kafka.common.security.plain.PlainLoginModule required
- username="admin"
- password="xx"
- user_admin="xx"
- user_kafka="xx";
- };
-
- Client {
- org.apache.kafka.common.security.plain.PlainLoginModule required
- username="kafka"
- password="xx";
- };
-
- KafkaClient {
- org.apache.kafka.common.security.plain.PlainLoginModule required
- username="kafka"
- password="xx";
- };
- 2.在zookeeper安装目录创建文件/usr/local/bin/xx/zookeeper/conf/
- touch zk_server_jaas.conf
- 内容如下:
- Server {
- org.apache.kafka.common.security.plain.PlainLoginModule required
- username="admin"
- password="xx"
- user_kafka="xx";
- };
- ps:这里创建了两个账户 admin和kafka
-
- 3.全部设置完毕,重启zookeeper和kafka
- 1.在kafka安装目录的config目录下创建鉴权文件
- cd /usr/local/bin/xx/kafka/config
- touch sasl.config
- 内容如下:
- security.protocol=SASL_PLAINTEXT sasl.mechanism=PLAIN sasl.jaas.config=org.apache.kafka.common.security.plain.PlainLoginModule required username="kafka" password="xx";
-
- 2.启动消费者
- /usr/local/bin/xx/kafka/bin/kafka-console-consumer.sh --bootstrap-server 127.0.0.1:9092 --topic test -consumer.config /usr/local/bin/xx/kafka/config/sasl.config
- 3.启动生产者
- /usr/local/bin/cscmc/app/kafka/bin/kafka-console-producer.sh --broker-list 127.0.0.1:9092 --topic test -producer.config /usr/local/bin/xx/kafka/config/sasl.config
- 4.自产自消能够成功说明配置全部正确