centos 7 kafka2.6单机安装及动态认证SASL SCRAM配置

news2024/9/20 1:21:18

目录

1.kfaka安装篇

1.1 安装jdk

1.2安装kafka

2.安全篇

2.1 kafka安全涉及3部份:

2.2 Kafka权限控制认证方式

2.3 SASL/SCRAM-SHA-256 配置实例

2.3.1 创建用户

2.3.2 创建 JAAS 文件及配置

3.测试

3.1 创建测试用户

3.2 配置JAAS 文件

3.2.1 生产者配置

3.2.2 消费者配置

3.3 消息收发测试


1.kfaka安装篇

  • 依赖环境:jdk 1.8+
  • 系统:centos 7.6
  • 安装版本:v2.6.2
  • 下载:Apache Kafka

1.1 安装jdk

# 安装jdk 1.8
yum install java-1.8.0-openjdk.x86_64 -y

1.2安装kafka

# 下载2.6.2 kafka
wget https://archive.apache.org/dist/kafka/2.6.2/kafka_2.13-2.6.2.tgz

# 解压
 tar -xzf kafka_2.13-2.6.2.tgz && mv kafka_2.13-2.6.2 /usr/local/kafka
 cd /usr/local/kafka
 
# 启动zk
bin/zookeeper-server-start.sh config/zookeeper.properties
# 启动kafka
bin/kafka-server-start.sh config/server.properties

# 启动后查看端口
# 查看监听zk端口2181、kafka端口 9092
# netstat -lntp
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name    
        
tcp6       0      0 :::9092      :::*                    LISTEN      2164/java           
tcp6       0      0 :::2181                 :::*                    LISTEN      1008/java      

2.安全篇

2.1 kafka安全涉及3部份:

  • 传输加密
  • 用户认证与授权
  • ZK开启ACL(默认不开启acl,所有用户可更改,按需开启)

这里只开启传输加密和用户认证部分,acl不在这里配置

2.2 Kafka权限控制认证方式

Kafka支持的认证类别有

具体使用哪种按需选择,这里以sasl scram认证配置为例

2.3 SASL/SCRAM-SHA-256 配置实例

步骤:

  • 创建用户
  • 配置认证
2.3.1 创建用户

配置 SASL/SCRAM 的第一步,是创建能连接 Kafka 集群的用户,创建用户admin ,用于实现 Broker 间通信。

创建用户:

# 注意将密码替换
# 创建用户admin
bin/kafka-configs.sh --zookeeper 127.0.0.1:2181 --alter --add-config 'SCRAM-SHA-256=[password=admin],SCRAM-SHA-512=[password=admin]' --entity-type users --entity-name admin

附:管理用户命令

# 查看用户信息
bin/kafka-configs.sh --zookeeper localhost:2181 --describe --entity-type users --entity-name admin

# 删除用户
bin/kafka-configs.sh --zookeeper localhost:2181 --alter  --delete-config 'SCRAM-SHA-512' --entity-type users --entity-name admin
2.3.2 创建 JAAS 文件及配置

2.3.2.1 broker配置

创建用户之后,需要为每个 Broker 创建一个对应的 JAAS 文件。因为本例为单机部署,所以只创建了一份 JAAS 文件即可。如果是集群,需要为每个 Broker 机器都创建一份 JAAS 文件

JAAS 的文件内容如下

# 在kafka工作目录下创建jaas.conf文件,用于broker通信
vim config/kafka_server_jaas.conf

KafkaServer {
    org.apache.kafka.common.security.scram.ScramLoginModule required
    username="admin"
    password="admin";
};

开启broker认证配置

vim config/server.properties
# 添加如下配置
# 开启认证配置
advertised.listeners=SASL_PLAINTEXT://:9092
listeners=SASL_PLAINTEXT://:9092
security.inter.broker.protocol=SASL_PLAINTEXT
# Broker 间通信也开启 SCRAM 认证,使用 SHA-256 算法
sasl.mechanism.inter.broker.protocol=SCRAM-SHA-256
# 开启 SCRAM 认证机制,并启用 SHA-256 算法
sasl.enabled.mechanisms=SCRAM-SHA-256

broker启动命令添加 jaas conf配置,用于通信认证

vim /usr/local/kafka/bin/kafka-server-start.sh 
# 将最下面的命令注释
# exec $base_dir/kafka-run-class.sh $EXTRA_ARGS kafka.Kafka "$@"
# 增加jvm参数:-Djava.security.auth.login.config
# 修改如下
exec $base_dir/kafka-run-class.sh $EXTRA_ARGS -Djava.security.auth.login.config=/usr/local/kafka/config/kafka_server_jaas.conf kafka.Kafka "$@"

重启kafka

3.测试

3.1 创建测试用户

在这里创建 2个用户,分别是producer和 consumer 。producer 用于生产消息,consumer 用于消费消息,producer和consumer用于测试使用,生产中使用可根据业务需要创建对应用户,这里仅用于演示。

# 创建用户producer
bin/kafka-configs.sh --zookeeper 127.0.0.1:2181 --alter --add-config 'SCRAM-SHA-256=[password=producer],SCRAM-SHA-512=[password=producer]' --entity-type users --entity-name producer
# 创建用户consumer
bin/kafka-configs.sh --zookeeper 127.0.0.1:2181 --alter --add-config 'SCRAM-SHA-256=[password=consumer],SCRAM-SHA-512=[password=consumer]' --entity-type users --entity-name consumer

3.2 配置JAAS 文件

3.2.1 生产者配置
vim /usr/local/kafka/config/producer_jaas.conf

KafkaClient {
    org.apache.kafka.common.security.scram.ScramLoginModule required
    username="producer"
    password="producer";
};

配置生产者启动脚本添加JAAS文件

vim bin/kafka-console-producer.sh
# 将下面的命令注释
#exec $(dirname $0)/kafka-run-class.sh kafka.tools.ConsoleProducer "$@"
# 修改如下
exec $(dirname $0)/kafka-run-class.sh -Djava.security.auth.login.config=/usr/local/kafka/config/producer_jaas.conf kafka.tools.ConsoleProducer "$@"

配置producer.properties

vim config/producer.properties
# 添加如下内容
security.protocol=SASL_PLAINTEXT
sasl.mechanism=SCRAM-SHA-256
3.2.2 消费者配置

配置JAAS文件

vim /usr/local/kafka/config/consumer_jaas.conf

KafkaClient {
    org.apache.kafka.common.security.scram.ScramLoginModule required
    username="consumer"
    password="consumer";
};

配置消费者启动脚本添加JAAS文件配置

vim bin/kafka-console-consumer.sh
# 将下面的命令注释
#exec $(dirname $0)/kafka-run-class.sh kafka.tools.ConsoleConsumer "$@"
# 修改如下
exec $(dirname $0)/kafka-run-class.sh -Djava.security.auth.login.config=/usr/local/kafka/config/consumer_jaas.conf kafka.tools.ConsoleConsumer "$@"

配置consumer.properties

vim config/consumer.properties
# 添加如下内容
security.protocol=SASL_PLAINTEXT
sasl.mechanism=SCRAM-SHA-256

3.3 消息收发测试

 # 发送消息到topic test
 bin/kafka-console-producer.sh --broker-list  localhost:9092 --topic test --producer.config config/producer.properties

# 读取test消息
bin/kafka-console-consumer.sh --bootstrap-server  localhost:9092 --topic test --from-beginning --consumer.config config/consumer.properties

效果如下

至此kafka SASL SCRAM认证配置完毕

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1153829.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

关于息肉检测和识别项目的总结

前言 整体的思路:首先息肉数据集分为三类: 1.正常细胞 2. 增生性息肉 3. 肿瘤要想完成这个任务,首先重中之重是分割任务,分割结果的好坏, 当分割结果达到一定的准确度后,开始对分割后的结果进行下游分类…

【C语言_题库】C语言:编写一个程序,输入一组字符串,将字符串中的小写字母转换为大写字母,其它字符不变,并输出。

把键盘输入的一行字符串的小写字母转换成大写字母,其余字符不变,进行输出,直到遇到回车为止。 具体说明 【问题描述】 从键盘输入一行英文字符串,把所有小写字母变成大写字母,其他字母和字符保持不变。 【输入形式】 输入一行字符串,含大小写。 【输出形式】 输出大写字…

详解—数据结构《树和二叉树》

目录 一.树概念及结构 1.1树的概念 1.2树的表示 二.二叉树的概念及结构 2.1概念 2.2二叉树的特点 2.3现实中的二叉树 2.4数据结构中的二叉树 2.5 特殊的二叉树 2.6二叉树的存储结构 2.6.1二叉树的性质 2.6.2 顺序结构 2.6.3链式存储 三. 二叉树的链式结构的遍历 …

《算法通关村—用栈实现队列|用队列实现栈问题解析》

《算法通关村—用栈实现队列|用队列实现栈问题解析》 用栈实现队列 LeetCode232 先看题意: 请你仅使用两个栈实现先入先出队列。队列应当支持一般队列支持的所有操作(push、pop、peek、empty): void push(int x) 将元素 x 推到…

Mac 解决 APP 快捷键冲突

打开 Mac 系统设置键盘->键盘快捷键->App快捷键->添加快捷键(加号)->标题需要和tab名称完全一致(包括中英文、标点符号等,如下图)设置快捷键即可 Reference: https://www.cnblogs.com/Questio…

qt-gui

C常用GUI开发框架Qt,开始支持Python 2018-12-24 12:49 C的GUI接口开发框架Qt宣布,在5.12版本中开始支持Python,Python开发人员现在可以使用所有的Qt API,目前仍在技术预览版的阶段,但官方也承诺,正式版将…

BUUCTF_练[CISCN2019 华北赛区 Day1 Web5]CyberPunk

[CISCN2019 华北赛区 Day1 Web5]CyberPunk 文章目录 [CISCN2019 华北赛区 Day1 Web5]CyberPunk掌握知识解题思路代码分析paylaod的构建正式解题 关键paylaod 掌握知识 ​ php伪协议读取文件;源码泄露hint ;代码审计 发现二次注入点;SQL语句的…

配置文件草稿

SpringBoot配置文件是用来保存SpringBoot项目当中所有重要的数据的,比如说数据库连接信息,数据库的启动端口,如果端口被占用了,那么就可以随时修改; 1)比如说我们之前再写JDBC的代码的时候,要去写链接字符串…

Figma怎么用?看这篇最全攻略,用完回不去了!

Figma是什么?设计师朋友们一定不会陌生,它以轻体量、高设计效率、超强协作性以及设计和开发一体化等特点风靡一时,在全球的数字产品设计领域范围内崭露头角,得到海量用户和无数企业的认可和选择(真棒啊)。 …

成绩不公开,如何发成绩

亲爱的老师们,有没有在学期中疯狂整理成绩单,又担心成绩私发引起混乱的烦恼?今天就让我们一起探索如何利用各种工具和代码,实现学生自主查询成绩的便捷方式吧! 成绩查询系统简介 成绩查询系统是一款方便学生和老师查询…

自主查询成绩

今天我们来揭秘如何制作成绩查询系统,让学生可以自行查看成绩! 成绩查询系统可以帮助学生和老师轻松管理、发布、查看成绩。无论是期中考试、期末考试,作业查询还是平时的课堂表现,都可以通过成绩查询系统来及时掌握。 让我们一起…

双十一限时优惠!沃通SSL证书、代码签名证书年度好价

2023年11月01日至11月11日,沃通2023“双十一限时特惠”活动,精选9款SSL证书、国密SSL证书、代码签名证书产品推出年度好价,部分SSL证书产品低至5折,更有EV代码签名证书爆款特惠!多种数字证书一站式采购,解决…

京东数据分析:2023年9月京东饮料行业品牌销售排行榜

鲸参谋监测的京东平台9月份饮料市场销售数据已出炉! 9月份,京东饮料市场整体销售下滑。鲸参谋数据显示,今年9月,京东平台饮料市场的销量将近750万,环比降低约9%,同比降低约12%;销售额约4.4亿&am…

外网远程登录之 NAT server

案例: 外网远程登录内网SW: 需求 1.内网的PC都可以访问Server1 2.外网的R2可以远程登录SW1, 用户名和密码是:HCIE/hehe 需求 1.内网的PC都可以访问Server1 2.外网的R2可以远程登录SW1, 用户名和密码是:HCI…

腾讯云优惠券如何领取?详细教程来了!

腾讯云优惠券是腾讯云为广大用户提供的优惠福利,包括代金券和折扣券,大家可以通过领取优惠券,在购买腾讯云产品时享受优惠。本文将为大家介绍如何领取腾讯云优惠券,以及领取后的使用规则。 一、腾讯云优惠券领取方法 腾讯云优惠券…

2022最新版-李宏毅机器学习深度学习课程-P32 Transformer

一、 seq2seq 1. 含义 输入一个序列,机器输出另一个序列,输出序列长度由机器决定。 文本翻译:文本至文本;  语音识别:语音至文本;  语音合成:文本至语音;  聊天机器人&#…

window11最新版终于可以取消任务栏合并了

windows11一个软件开了多个窗口之后,会自动合并任务栏,很不方便选择其中一个窗口,且没有选项能关闭这一配置 今日发现,最新版完善了这一功能,现在可以关闭自动合并任务栏了 右击任务栏,选择任务栏设置选择…

518抽奖软件,奖项相互穿插抽奖的方法

518抽奖软件简介 518抽奖软件,518我要发,超好用的年会抽奖软件,简约设计风格。 包含文字号码抽奖、照片抽奖两种模式,支持姓名抽奖、号码抽奖、数字抽奖、照片抽奖。(www.518cj.net) 奖项穿插的方法 比如公司年会,共…

程序员如何提高自己的代码能力呢?

前言 程序员如何提高代码能力?个人认为代码能力比较强的程序员应该具备良好的编码习惯并可以输出高质量的代码实现的特征。那么程序员如何提高代码能力的问题,就变成了怎么才能成为一个具备良好编码习惯并可以输出高质量代码实现的程序员。其实很简单&am…

打造智慧矿山-触觉智能软通动力强强联合,助力矿鸿生态

2023年10月25-28日,两年一度的中国国际煤炭采矿技术交流及设备展览会在首都北京隆重召开,本届大会以“智能引领未来,绿色共享发展”为主题,作为国内煤炭行业的顶级盛会,由中国煤炭工业协会牵头举办的这次展出吸引了全世…