第一章 Kafka 配置部署及SASL_PLAINTEXT安全认证

  系列文章目录

第一章 Kafka 配置部署及SASL_PLAINTEXT安全认证

第二章  Spring Boot 整合 Kafka消息队列 生产者

第三章  Spring Boot 整合 Kafka消息队列 消息者

 第四章 Spring Boot 整合 Kafka消息队列 实战 


1、下载安装

Kafka下载地址:Apache Kafka

# 下载文件
wget https://downloads.apache.org/kafka/3.5.1/kafka_2.12-3.5.1.tgz

# 文件解压缩
tar -zxvf kafka_2.12-3.5.1.tgz

# 修改目录名称
mv kafka_2.12-3.5.1 kafka_2.12

# 进入目录
cd kafka_2.12

2、Zookeeper 配置

2.1、修改 Zookeeper 配置文件 config/zookeeper.properties

# 编辑 zookeeper 配置文件
vim config/zookeeper.properties

2.2、Zookeeper 配置文件修改内容

dataDir=/tmp/zookeeper
# the port at which the clients will connect
clientPort=2181
# disable the per-ip limit on the number of connections since this is a non-production config
maxClientCnxns=0
# Disable the adminserver by default to avoid port conflicts.
# Set the port to something non-conflicting if choosing to enable this
admin.enableServer=false
# admin.serverPort=8080
authProvider.1=org.apache.zookeeper.server.auth.SASLAuthenticationProvider
requireClientAuthScheme=sasl
jaasLoginRenew=3600000

2.2、Zookeeper 配置文件增加配置说明

# 身份验证提供程序
authProvider.1=org.apache.zookeeper.server.auth.SASLAuthenticationProvider

# 需要客户端身份验证方案
requireClientAuthScheme=sasl

# jaas登录续订
jaasLoginRenew=3600000

2.3、Zookeeper 配置JAAS文件

# 配置JAAS文件
cat > config/zookeeper_jaas.conf << EOF
Server {
    org.apache.kafka.common.security.plain.PlainLoginModule required 
    username="admin" 
    password="admin-2022" 
    user_kafka="kafka-2022" 
    user_producer="producer-2022";
};
EOF

2.4、Zookeeper 修改启动脚本 bin/zookeeper-server-start.sh

# 编辑启动脚本
vim bin/zookeeper-server-start.sh

2.5、Zookeeper 增加如下内容

# 增加JAAS配置文件
export KAFKA_OPTS="-Djava.security.auth.login.config=/usr/local/kafka_2.12/config/zookeeper_jaas.conf"

3、Kafka 配置

3.1、修改 Kafka 配置文件 config/server.properties

# 编辑 Kafka 配置文件
vim config/server.properties

3.2、Kafka 配置文件修改内容

未做变更的不做展示

listeners=SASL_PLAINTEXT://0.0.0.0:9092
advertised.listeners=SASL_PLAINTEXT://192.168.1.95:9092
security.inter.broker.protocol=SASL_PLAINTEXT
sasl.enabled.mechanisms=PLAIN
sasl.mechanism.inter.broker.protocol=PLAIN

# 完成身份验证的类
authorizer.class.name=kafka.security.authorizer.AclAuthorizer
# 如果没有找到ACL(访问控制列表)配置,则允许任何操作。
allow.everyone.if.no.acl.found=false
# 需要开启设置超级管理员,设置admin用户为超级管理员
super.users=User:admin

3.3、Kafka 配置JAAS文件

# 配置JAAS文件
cat > config/kafka_server_jaas.conf << EOF
KafkaServer {
    org.apache.kafka.common.security.plain.PlainLoginModule required
    username="admin"
    password="admin-secret"
    user_admin="admin-secret"
    user_alice="secret";
};
KafkaClient {
    org.apache.kafka.common.security.plain.PlainLoginModule required
    username="kafka"
    password="kafka-2022";
};
EOF

3.4、Kafka 修改启动脚本 bin/kafka-server-start.sh

# 编辑启动脚本
vim bin/kafka-server-start.sh

3.5、Kafka 增加如下内容

# 增加JAAS配置文件
if [ "x$KAFKA_OPTS"  ]; then
    export KAFKA_OPTS="-Djava.security.auth.login.config=/usr/local/kafka_2.12/config/kafka_server_jaas.conf"
fi

4、启动 Zookeeper

执行启动 Zookeeper 命令

# 执行启动 zookeeper 命令
./bin/zookeeper-server-start.sh -daemon config/zookeeper.properties

5、启动 Kafka

执行启动 Kafka 命令

# 执行启动 kafka 命令
./bin/kafka-server-start.sh  -daemon config/server.properties
  • 9
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 6
    评论
SASL_PLAINTEXT是一种Kafka安全机制,可以在传输数据时进行身份验证和加密。下面是在Kafka2.7中设置SASL_PLAINTEXT的步骤: 1. 安装Kafka2.7 首先需要安装Kafka2.7,可以根据自己的操作系统下载安装包或使用源代码编译安装。 2. 配置KafkaKafka配置文件中,需要添加以下配置项: ``` listeners=SASL_PLAINTEXT://localhost:9092 security.inter.broker.protocol=SASL_PLAINTEXT sasl.mechanism.inter.broker.protocol=PLAIN ``` 这些配置项将启用SASL_PLAINTEXT,并指定Kafka监听的地址和端口。 3. 配置认证机制 在Kafka配置文件中,还需要指定认证机制。例如,可以使用PLAIN认证机制进行身份验证。需要添加以下配置项: ``` sasl.enabled.mechanisms=PLAIN sasl.mechanism.inter.broker.protocol=PLAIN sasl.server.callback.handler.class=io.confluent.kafka.security.authenication.plain.PlainServerCallbackHandler security.inter.broker.protocol=SASL_PLAINTEXT ``` 4. 创建用户和密码 在Kafka中,需要为每个用户创建用户名和密码。可以使用kafka-configs.sh工具创建用户和密码。例如,以下命令将创建用户名为“admin”,密码为“admin”的用户: ``` bin/kafka-configs.sh --zookeeper localhost:2181 --alter --add-config 'SCRAM-SHA-256=[password=admin],SCRAM-SHA-512=[password=admin]' --entity-type users --entity-name admin ``` 5. 重启Kafka 完成以上步骤后,需要重启Kafka以使配置生效。 6. 测试SASL_PLAINTEXT 可以使用Kafka的命令行工具(kafka-console-producer.sh和kafka-console-consumer.sh)测试SASL_PLAINTEXT是否生效。例如,以下命令将在SASL_PLAINTEXT模式下启动一个生产者: ``` bin/kafka-console-producer.sh --broker-list localhost:9092 --topic test --producer.config config/producer.properties ``` 在控制台中输入消息后,可以使用以下命令在SASL_PLAINTEXT模式下启动一个消费者来接收消息: ``` bin/kafka-console-consumer.sh --bootstrap-server localhost:9092 --topic test --from-beginning --consumer.config config/consumer.properties ``` 如果一切正常,应该能够成功发送和接收消息。
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

维基框架

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值