Kafka 3.1+ 自带Zookeeper 配置授权认证 SASL/PLANTEXT ACL

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档


前言

提示:这里可以添加本文要记录的大概内容:
传送门:kafka官网
下载:wget https://www.apache.org/dyn/closer.cgi?path=/kafka/3.1.0/kafka_2.12-3.1.0.tgz


提示:以下是本篇文章正文内容,下面案例可供参考

一、安装

直接解压:

tar -zxvf kafka_2.12-3.1.0.tgz
cd kafka_2.12-3.1.0

二、配置 SASL/PLANTEXT

1.修改conf/server.properties 配置文件,在最后添加

如下(#中文注释去掉):

# IP地址自行替换
listeners=SASL_PLAINTEXT://192.168.231.128:9092
# 外网可访问需配置
advertised.listeners=SASL_PLAINTEXT://192.168.231.128:9092
# 配置sasl协议啥的,基本上不用改
security.inter.broker.protocol=SASL_PLAINTEXT
sasl.enabled.mechanisms=PLAIN
sasl.mechanism.inter.broker.protocol=PLAIN
# 设置alc权限
allow.everyone.if.no.acl.found=true
# auto.create.topics.enable=false
# delete.topic.enable=true
# IP自行替换
advertised.host.name=192.168.231.128
super.users=User:admin
# 指定认证机制类  注意:kafka低版本使用 kafka.security.auth.SimpleAclAuthorizer,具体查阅官方文档
authorizer.class.name=kafka.security.authorizer.AclAuthorizer

2.添加conf/kafka_server_jaas.conf授权认证文件

此文件用于设置连接kafka服务的账号密码(KafkaServer)和kafka服务向zookeeper注册的账号密码(KafkaClient),
生产者、消费者连接kafka服务账号密码需和KafkaServer一致
指定认证类,并设置用户名和密码:

KafkaServer {
        org.apache.kafka.common.security.plain.PlainLoginModule required
        username="admin"
        password="admin"
        user_admin="admin";
};

KafkaClient {
        org.apache.kafka.common.security.plain.PlainLoginModule required
        username="admin"
        password="admin";
};

user_用户名=“密码” 代表:服务账号密码
username=“admin” password=“admin” 代表:集群间通讯使用???


3.修改bin/kafka-server-start.sh启动脚本

如:自行修改为kafka_server_jaas.conf的绝对路径

export KAFKA_HEAP_OPTS="-Xmx1G -Xms1G -Djava.security.auth.login.config=/opt/kafka_2.12-3.1.0/config/kafka_server_jaas.conf"

4.添加conf/kafka_client_jaas.conf授权认证文件

用户生产者和消费者客户端连接kafka时授权认证

KafkaClient {
        org.apache.kafka.common.security.plain.PlainLoginModule required
        username="admin"
        password="admin";
};

5.修改conf/consumer.properties和conf/producer.properties配置文件

给生产者和消费者开启sasl连接认证,分别在配置文件任意位置添加:

security.protocol=SASL_PLAINTEXT
sasl.mechanism=PLAIN

6.修改生产者和消费者启动脚本

分别修改bin/kafka-console-consumer.sh和bin/kafka-console-producer.sh脚本,添加连接kafka服务认证文件kafka_client_jaas.conf,自行替换成绝对路径

 export KAFKA_HEAP_OPTS="-Xmx512M -Djava.security.auth.login.config=/opt/kafka_2.12-3.1.0/config/kafka_client_jaas.conf"

7.添加conf/kafka_zoo_jaas.conf授权认证文件

用于客户端kafka注册到zookeeper时的授权认证

Server {
        org.apache.kafka.common.security.plain.PlainLoginModule required
        username="admin"
        password="admin";
};

8.修改bin/zookeeper-server-start.sh启动脚本

配置zookeeper授权认证,kafka_zoo_jaas.conf绝对路径自行修改

 export KAFKA_HEAP_OPTS="-Xmx512M -Xms512M -Djava.security.auth.login.config=/opt/kafka_2.12-3.1.0/config/kafka_zoo_jaas.conf"

8.启动zookeeper服务

kafka_2.12-3.1.0目录下,执行命令

./bin/zookeeper-server-start.sh  config/zookeeper.properties > ./logs/zookeeper-server.log 2>&1 &

# 查看日志
tail -500f logs/zookeeper-server.log

9.启动kafka服务

kafka_2.12-3.1.0目录下,执行命令

./bin/kafka-server-start.sh config/server.properties > logs/kafka-server.log 2>&1 &

# 查看日志
tail -500f logs/kafka-server.log

没意外的话,配置基本完成。接下来就是测试了

10.查询Topic

kafka_2.12-3.1.0目录下,执行命令

# 查询topic列表 旧版本 依赖zookeeper
./bin/kafka-topics.sh --zookeeper 192.168.231.128:2181 --list

# 查询topic列表(支持0.9版本+)新版本查topic不依赖zookeeper
./bin/kafka-topics.sh --list --bootstrap-server 192.168.231.128:9092

11.创建Topic test

kafka_2.12-3.1.0目录下,执行命令

./bin/kafka-topics.sh --create --bootstrap-server 192.168.231.128:9092 --replication-factor 1 --partitions 1 --topic test

12.启动生产者

kafka_2.12-3.1.0目录下,执行命令:

# 据说--broker-list已被废弃,由--bootstrap-server代替
 ./bin/kafka-console-producer.sh --broker-list 192.168.231.128:9092 --topic test --producer.config config/producer.properties
 所以咱们可以用新的:
 ./bin/kafka-console-producer.sh --bootstrap-server 192.168.231.128:9092 --topic test --producer.config config/producer.properties

13.启动消费者

kafka_2.12-3.1.0目录下,执行命令:

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

消费者可以接收到生产者发送的消息。

下集,kafka可视化搭建。。。

总结

哎,太tm折腾了,对新手相对没那么友好,创作不易,描述有错请多多包涵~键盘下留情。。。
参考文章:
老哥写得不错:https://blog.csdn.net/qq_36389344/article/details/107233992

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值