单机部署Kafka和开启SASL认证以及基础命令使用

这篇具有很好参考价值的文章主要介绍了单机部署Kafka和开启SASL认证以及基础命令使用。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

版本

操作系统:linux
kafka:kafka_2.13-3.3.2
zookeeper:apache-zookeeper-3.7.1-bin

部署

1.下载zookeeper和kafka安装包

cd /home
wget https://downloads.apache.org/kafka/3.3.2/kafka_2.12-3.3.2.tgz
wget https://www.apache.org/dyn/closer.lua/zookeeper/zookeeper-3.7.1/apache-zookeeper-3.7.1-bin.tar.gz

2.解压

tar -zxvf kafka_2.12-3.3.2.tgz
tar -zxvf apache-zookeeper-3.7.1-bin.tar.gz

3.修改zookeeper配置文件并启动

cd apache-zookeeper-3.7.1-bin/config
cp zoo_sample.cfg zoo.cfg

修改zoo.cfg文件,增加以下命令

authProvider.1=org.apache.zookeeper.server.auth.SASLAuthenticationProvider
requireClientAuthScheme=sasl
jaasLoginRenew=3600000

创建zk_server_jaas.conf文件(开启kafka sasl认证使用),文件内容

Server {
	# 认证方式为DigestLoginModule
    org.apache.zookeeper.server.auth.DigestLoginModule required
    # zk集群使用的账号  		
    username="kafka"
    # zk集群使用的密码
    password="kafka"
    # kafka连接使用的账号和密码,写法为user_账号=“密码”
    user_kafka="kafka";
};

此外,认证过程需要导入kafka的依赖类,在下载的kafka/libs目录找到以下四个jar包,在zookeeper目录下创建zk_sasl_dependency目录(具体目录可根据实际情况进行修改,后续在配置文件中指定到实际目录就可以)

kafka-clients-3.3.2.jar
lz4-java-1.8.0.jar
slf4j-api-1.7.36.jar
slf4j-reload4j-1.7.36.jar
snappy-java-1.1.8.4.jar

修改bin/zkEnv.sh文件,将zk的sasl认证信息加载到jvm参数中,在zk服务启动时加载认证的jar包和认证信息

for i in /home/apache-zookeeper-3.7.1-bin/zk_sasl_dependency/*.jar; 
do 
    CLASSPATH="$i:$CLASSPATH"
done
SERVER_JVMFLAGS=" -Djava.security.auth.login.config=/home/apache-zookeeper-3.7.1-bin/config/zk_server_jaas.conf "

进入bin目录启动zk

./zkServer.sh start

4.修改kafka配置并启动
新增kafka_server_jaas.conf文件

cd /home/kafka_2.13-3.3.2/config

创建kafka_server_jaas.conf

KafkaServer {
	# 指定认证方法为PLAIN
    org.apache.kafka.common.security.plain.PlainLoginModule required
    # kafka多个broker认证的账号
    username="admin"
    # kafka多个broker认证的密码
    password="admin"
    # 定义一个用户账号为admin,密码为admin
    user_admin="admin"
    # 定义一个用户账号为kafka,密码为kafka,需要和zk中定义的账号密码保持一致
    user_kafka="kafka";
};
# 猜测可能是集群环境下当前服务作为client的配置,但未进行实践,单机模式下可不用
Client {
    org.apache.zookeeper.server.auth.DigestLoginModule required
    username="kafka"
    password="kafka";
};

开启SASL认证,修改server.properties配置文件,增加以下内容

# 允许外部端口连接
listeners=SASL_PLAINTEXT://192.168.0.106:9092
# 认证方式
security.inter.broker.protocol=SASL_PLAINTEXT
sasl.mechanism.inter.broker.protocol=PLAIN 
sasl.enabled.mechanisms=PLAIN
allow.everyone.if.no.acl.found=true
# 对外提供服务的代理地址
advertised.listeners=SASL_PLAINTEXT://192.168.0.106:9092

修改bin目录下kafka启动脚本,在jvm参数中增加认证信息

export KAFKA_HEAP_OPTS="-Xmx1G -Xms1G“ 修改为
export KAFKA_HEAP_OPTS="-Xmx1G -Xms1G -Djava.security.auth.login.config=/home/kafka_2.13-3.3.2/config/kafka_server_jaas.conf"

启动服务

./kafka-server-start.sh  ../config/server.properties

验证

使用kafka自带的客户端脚本进行测试验证
1.添加客户端认证信息
config目录下新建kafka_client_jaas.conf,添加以下内容

KafkaClient {
  # 指定连接方式
  org.apache.kafka.common.security.plain.PlainLoginModule required
  # 客户端用户名,与kafka_server_jaas.conf中账号密码保持一致
  username="kafka"
  # 客户端密码
  password="kafka";
};

2.修改config目录下producer.properties和consumer.properties,增加以下内容

security.protocol=SASL_PLAINTEXT 
sasl.mechanism=PLAIN

3.修改客户端和服务端的启动脚本kafka-console-producer.sh和kafka-console-consumer.sh,将kafka_client_jaas.conf认证信息添加至启动参数中

export KAFKA_HEAP_OPTS="-Xmx512M"
修改为
export KAFKA_HEAP_OPTS="-Xmx512M  -Djava.security.auth.login.config=/home/kafka_2.13-3.3.2/config/kafka_client_jaas.conf"

4.kafka-topics.sh添加认证信息,确保能使用命令行创建/删除topic
config目录下添加sasl_client.conf文件,指定命令执行时的认证方式,文件内容:

security.protocol=SASL_PLAINTEXT
sasl.mechanism=PLAIN

修改kafka-topics.sh启动脚本,使用kafka_client_jaas.conf客户端文件中的验证参数

新增
export KAFKA_HEAP_OPTS="-Xmx1G -Xms1G -Djava.security.auth.login.config=/home/kafka_2.13-3.3.2/config/kafka_client_jaas.conf"

创建名称为test、只有一个分区的topic

bin/kafka-topics.sh --create --topic test --partitions 1 --bootstrap-server 192.168.0.106:9092 --command-config config/sasl_client.conf

5.启动生产者和消费者服务

启动生产者
./bin/kafka-console-producer.sh --broker-list 192.168.0.106:9092 --topic test --producer.config config/producer.properties

启动消费者
./bin/kafka-console-consumer.sh --bootstrap-server 192.168.0.106:9092 --topic test --from-beginning --consumer.config config/consumer.properties

生产者发送消息后消费者可正常收到,整体验证结束

常用命令

topic

1.查看所有topic

bin/kafka-topics.sh --list --bootstrap-server 192.168.0.106:9092 --command-config config/sasl_client.conf

2.查看名称为test的topic

bin/kafka-topics.sh --topic test --describe --bootstrap-server 192.168.0.106:9092 --command-config config/sasl_client.conf

3.创建test的topic,并且创建一个分区

bin/kafka-topics.sh --create --topic test --partitions 1 --bootstrap-server 192.168.0.106:9092 --command-config config/sasl_client.conf

4.删除名称为test的topic

bin/kafka-topics.sh --delete --topic test  --bootstrap-server 192.168.0.106:9092 --command-config config/sasl_client.conf

groups

使用kafka-consumer-groups.sh脚本之前,需要参照kafka-topics.sh脚本先进行修改,将kafka_client_jaas.conf文件中的配置信息导入到环境变量中
1.查看所有的groups信息

bin/kafka-consumer-groups.sh --list --bootstrap-server 192.168.0.106:9092 --command-config config/sasl_client.conf

2.查看指定的groups信息

bin/kafka-consumer-groups.sh --group test --describe --bootstrap-server 192.168.0.106:9092 --command-config config/sasl_client.conf

3.查看指定分组的offset和描述

bin/kafka-consumer-groups.sh --group 'test' --offsets --describe --bootstrap-server 192.168.0.106:9092 --command-config config/sasl_client.conf

producer

生产消息

bin/kafka-console-producer.sh --broker-list 192.168.0.106:9092 --topic test --producer.config config/producer.properties

consumer

消费消息

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

相关网址

参考博客

https://www.cnblogs.com/ilovena/p/10123516.html
https://blog.csdn.net/small_tu/article/details/109534634

kafka官网

https://kafka.apache.org/

kafka中文文档

https://kafka.apachecn.org/

文章来源地址https://www.toymoban.com/news/detail-802556.html

到了这里,关于单机部署Kafka和开启SASL认证以及基础命令使用的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Kafka 开启 SASL/PLAINTEXT 认证及 ACL

    在之前的开发工作中,需要开发使用用户名密码的方式连接 Kafka 并对 Kafka 数据进行处理,但是客户并没有提供可以测试的环境,于是就自己着手搭建了一套单节点的 Kafka 并开启 SASL 认证。 1、组件版本 组件 版本 kafka 2.11-2.22 zookeeper 3.6.2 2、下载文件 KAFKA:下载地址 ZOOKEEPER:

    2023年04月08日
    浏览(36)
  • Apache zookeeper kafka 开启SASL安全认证

    背景:我之前安装的kafka没有开启安全鉴权,在没有任何凭证的情况下都可以访问kafka。搜了一圈资料,发现有关于sasl、acl相关的,准备试试。 Kafka是一个高吞吐量、分布式的发布-订阅消息系统。Kafka核心模块使用Scala语言开发,支持多语言(如Java、Python、Go等)客户端,它可

    2024年03月14日
    浏览(34)
  • storm统计服务开启zookeeper、kafka 、Storm(sasl认证)

    部署storm统计服务开启zookeeper、kafka 、Storm(sasl认证) 当前测试验证结果: 单独配置zookeeper 支持acl 设置用户和密码,在storm不修改代码情况下和kafka支持 当kafka 开启ACL时,storm 和ccod模块不清楚配置用户和密码。 使用python脚本连接kafka用户和密码是能成功发送消息。 当前部署

    2024年01月22日
    浏览(39)
  • Kafka 开启SASL/SCRAM认证 及 ACL授权(三)验证

    Kafka 开启SASL/SCRAM认证 及 ACL授权(三)验证。 官网地址:https://kafka.apache.org/ 本文说明如何做client验证ACL是否生效,我们之前开启了无acl信息不允许访问的配置。涉及的client有以下几个场景:shell脚本、python脚本、java应用、flink流。 kafka shell script验证 核心逻辑是,连zk的,使

    2024年02月07日
    浏览(27)
  • Apache zookeeper kafka 开启SASL安全认证 —— 筑梦之路

      Kafka是一个高吞吐量、分布式的发布-订阅消息系统。Kafka核心模块使用Scala语言开发,支持多语言(如Java、Python、Go等)客户端,它可以水平扩展和具有高吞吐量特性而被广泛使用,并与多类开源分布式处理系统进行集成使用。   Kafka作为一款开源的、轻量级的、分布式、可

    2024年02月11日
    浏览(26)
  • 第一章 Kafka 配置部署及SASL_PLAINTEXT安全认证

    第一章 Kafka 配置部署及SASL_PLAINTEXT安全认证 第二章  Spring Boot 整合 Kafka消息队列 生产者 第三章  Spring Boot 整合 Kafka消息队列 消息者 Kafka下载地址:Apache Kafka 2.1、修改 Zookeeper 配置文件 config/zookeeper.properties 2.2、Zookeeper 配置文件修改内容 2.2、Zookeeper 配置文件增加配置说明

    2024年01月16日
    浏览(33)
  • kafka配置SASL/PLAIN 安全认证

    为zookeeper添加SASL支持,在配置文件zoo.cfg添加 新建zk_server_jaas.conf文件,为Zookeeper添加账号认证信息.这个文件你放在哪里随意,只要后面zkEnv配置正确的路径就好了。我是放在 /opt/zookeeper/conf/home 路径下。zk_server_jaas.conf文件的内容如下 Server { org.apache.kafka.common.security.plain.Plai

    2024年02月10日
    浏览(31)
  • 【kafka+Kraft模式集群+SASL安全认证】

    准备3个kafka,我这里用的kafka版本为:kafka_2.13-3.6.0,下载后解压: 更改解压后的文件名称: cp kafka_2.13-3.6.0 kafka_2.13-3.6.0-1/2/3 分别得到kafka_2.13-3.6.0-1、kafka_2.13-3.6.0-2、kafka_2.13-3.6.0-3 copy一份config/kraft/server.properties配置文件,修改名称 server-sasl.properties 进入各个config/kraft/server

    2024年02月03日
    浏览(32)
  • kafka安全认证与授权(SASL/PLAIN)

    SASL 鉴权协议,主要用来保证客户端登录服务器的时候,传输的鉴权数据的安全性,SASL是对用户名和密码加解密用的 SSL 是一种间于传输层(比如TCP/IP)和应用层(比如HTTP)的协议。对传输内容进行加密,如HTTPS 如果使用了SASL但是没有使用SSL,那么服务端可以认证客户端的身

    2023年04月25日
    浏览(33)
  • Kafka SASL认证授权(六)全方位性能测试

    Kafka SASL认证授权(六)全方位性能测试。 官网地址:https://kafka.apache.org/ 一、场景 线上已经有kafka集群,服务运行稳定。但是因为产品升级,需要对kakfa做安全测试,也就是权限验证。 但是增加权限验证,会不会对性能有影响呢?影响大吗?不知道呀! 因此,本文就此来做

    2024年02月07日
    浏览(30)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包