当前位置:首页 > 大数据 > Hadoop > 正文内容

单机上部署kafka3.5,并配置sasl认证

admin1年前 (2024-03-29)Hadoop1083

概述

今天我要跟大家分享一下如何在单机上部署kafka3.5,并配置sasl认证(plaintext模式)。kafka是一个分布式的消息队列,可以用来处理大量的数据流。sasl是一种安全认证机制,可以保证kafka的通信安全。下面我会分几个步骤来介绍这个过程。


第一步,安装kafka

下载并解压kafka3.5的安装包。你可以从官网或者其他镜像站点下载kafka的压缩文件,然后解压到你想要的目录。例如,我把它解压到了/home/kafka目录。


第二步,修改kafka的配置文件

你需要修改两个文件,一个是server.properties,另一个是kafka_server_jaas.conf。server.properties是kafka的主要配置文件,里面有很多参数可以调整。kafka_server_jaas.conf是sasl认证的配置文件,里面定义了认证的方式和用户信息。这两个文件都在kafka的config目录下。


在server.properties中,你需要修改以下几个参数:


broker.id:这是kafka的唯一标识,每个broker都需要有一个不同的id。因为我们只有一个broker,所以可以设置为0。

listeners:这是kafka的监听地址和端口,可以有多个。我们需要添加一个sasl_plaintext类型的监听器,表示使用sasl和明文传输。例如,我们可以设置为listeners=PLAINTEXT://:9092,SASL_PLAINTEXT://:9093。

advertised.listeners:这是kafka对外公布的监听地址和端口,客户端会根据这个来连接kafka。我们需要和listeners保持一致,例如advertised.listeners=PLAINTEXT://:9092,SASL_PLAINTEXT://:9093。

zookeeper.connect:这是kafka连接zookeeper的地址和端口,zookeeper是一个分布式协调服务,用来管理kafka的元数据。因为我们只有一个zookeeper,所以可以设置为localhost:2181。

sasl.enabled.mechanisms:这是kafka启用的sasl认证方式,可以有多个。我们使用最简单的PLAIN方式,所以设置为sasl.enabled.mechanisms=PLAIN。

sasl.mechanism.inter.broker.protocol:这是kafka之间通信使用的sasl认证方式,必须是sasl.enabled.mechanisms中的一个。我们也设置为PLAIN。

authorizer.class.name:这是kafka使用的授权类,用来控制客户端对主题和消费组的访问权限。我们使用默认的SimpleAclAuthorizer,所以设置为authorizer.class.name=kafka.security.authorizer.AclAuthorizer。

super.users:这是kafka的超级用户列表,他们可以访问所有的主题和消费组,不受授权限制。我们可以设置为自己的用户名,例如super.users=User:admin。

在kafka_server_jaas.conf中,你需要添加以下内容:

KafkaServer {
org.apache.kafka.common.security.plain.PlainLoginModule required
username=“admin”
password=“admin”
user_admin=“admin”
user_alice=“alice”;
};



这里我们定义了一个KafkaServer段,表示kafka服务器端使用的认证模块。我们使用PlainLoginModule,并指定了用户名和密码。我们还定义了两个用户,admin和alice,并分别给他们设置了密码。


第三步,启动zookeeper和kafka

你需要先启动zookeeper,然后启动kafka。你可以使用kafka自带的脚本来启动它们。例如,在/home/kafka目录下执行以下命令:

bin/zookeeper-server-start.sh config/zookeeper.properties &
bin/kafka-server-start.sh config/server.properties &

如果没有报错,那么恭喜你,你已经成功部署了kafka3.5,并配置了sasl认证。

第四步,测试kafka的功能和安全性

你可以使用kafka自带的命令行工具来创建主题,生产和消费消息,以及查看授权信息。例如,在/home/kafka目录下执行以下命令:

# 创建一个名为test的主题,有一个分区和一个副本
bin/kafka-topics.sh --create --topic test --partitions 1 --replication-factor 1 --bootstrap-server localhost:9092

# 查看主题的信息
bin/kafka-topics.sh --describe --topic test --bootstrap-server localhost:9092

# 生产一些消息到test主题,使用sasl_plaintext协议和admin用户
bin/kafka-console-producer.sh --topic test --broker-list localhost:9093 --producer.config config/producer.properties

# 消费test主题的消息,使用sasl_plaintext协议和alice用户
bin/kafka-console-consumer.sh --topic test --bootstrap-server localhost:9093 --consumer.config config/consumer.properties

# 查看test主题的授权信息
bin/kafka-acls.sh --describe --topic test --bootstrap-server localhost:9092

在config目录下,你需要创建两个文件,producer.properties和consumer.properties,分别用来配置生产者和消费者的认证信息。例如,producer.properties的内容如下:

sasl.mechanism=PLAIN
security.protocol=SASL_PLAINTEXT
sasl.jaas.config=org.apache.kafka.common.security.plain.PlainLoginModule required \
username="admin" \
password="admin";

consumer.properties的内容如下:

sasl.mechanism=PLAIN
security.protocol=SASL_PLAINTEXT
sasl.jaas.config=org.apache.kafka.common.security.plain.PlainLoginModule required \
username="alice" \
password="alice";

通过这些命令,你可以验证kafka的基本功能和sasl认证的效果。你可以尝试使用不同的用户和密码,或者不使用sasl_plaintext协议,看看会发生什么。

以上就是我今天要分享的内容,希望对你有帮助。如果你有任何问题或建议,欢迎留言。谢谢!


扫描二维码推送至手机访问。

版权声明:本文由大数据技术发布,如需转载请注明出处。

本文链接:http://mllib.cn/?id=14

分享给朋友:
返回列表

没有更早的文章了...

没有最新的文章了...

“单机上部署kafka3.5,并配置sasl认证” 的相关文章

发表评论

访客

◎欢迎参与讨论,请在这里发表您的看法和观点。