当前位置: 首页 > news >正文

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

目录

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/kafkacd /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.confKafkaServer {org.apache.kafka.common.security.scram.ScramLoginModule requiredusername="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.confKafkaClient {org.apache.kafka.common.security.scram.ScramLoginModule requiredusername="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.confKafkaClient {org.apache.kafka.common.security.scram.ScramLoginModule requiredusername="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 testbin/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认证配置完毕

相关文章:

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

目录 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 生产者配…...

TrafficWatch 数据包嗅探器工具

TrafficWatch 是一种数据包嗅探器工具,允许您监视和分析 PCAP 文件中的网络流量。它提供了对各种网络协议的深入了解,并可以帮助进行网络故障排除、安全分析等。 针对 ARP、ICMP、TCP、UDP、DNS、DHCP、HTTP、SNMP、LLMNR 和 NetBIOS 的特定于协议的数据…...

MySQL Binlog实战应用之一

一、前言 开发业务系统尤其是与财务相关的系统,需要记录每一笔变更操作的日志,这一般有两种实现方案。 1、代码中通过AOP实现,提供注解跟踪记录日志,这种方案能够比较清晰地以业务角度记录操作日志,但记录变更前的旧…...

【MySQL】MVCC机制(undo log,read view)

文章目录 前言一. 预备知识二. 模拟MVCC三. Read View四. RC与RR的本质区别结束语 前言 MVCC(多版本并发控制)是一种用来解决读-写冲突的无锁并发控制 MVCC为事务分配单向增长的事务ID,为每个修改保存一个版本,版本与事物ID相关联…...

gma 2 教程(三)坐标参考系统:3.投影方法

安装 gma:pip install gma 地图投影是利用一定数学法则把地球表面的经、纬线转换到平面上的理论和方法。由于地球是一个赤道略宽两极略扁的不规则的梨形球体,故其表面是一个不可展平的曲面,所以运用任何数学方法进行这种转换都会产生误差和变…...

蓝桥杯每日一题2023.11.2

题目描述 等差素数列 - 蓝桥云课 (lanqiao.cn) 题目分析 对于此题我们需要求出最小的公差并且长度为10, 1.确保序列开始为素数 2.确定枚举的个数 注意:序列中数只是d的变化,可以通过此计算将开始数字后9个数字都计算出来,d是…...

Leetcode67二进制求和

1104 代码&#xff1a; class Solution {public String addBinary(String a, String b) {StringBuffer ans new StringBuffer();int n Math.max(a.length(),b.length()),carry 0;for(int i0;i<n;i){carry i < a.length()?(a.charAt(a.length()-1-i)-0):0;carry i…...

线性代数 第五章 特征值与特征向量

一、特征值定义 二、特征值求法 定义法&#xff1b;&#xff1b;相似。 三、特征向量求法 定义法&#xff1b;基础解系法&#xff1b;&#xff1b;相似。 四、特征值性质 不同特征值的特征向量线性无关k重特征值至多有k个线性无关的特征向量 五、相似的定义 若&#xff…...

Python嵌入式数据库 / 轻量级数据库 / 小型数据库介绍(SQLite、Pandas DataFrame、TinyDB)(python数据库)

文章目录 Python嵌入式数据库/轻量级数据库介绍什么是嵌入式数据库/轻量级数据库&#xff1f;SQLitePandasTinyDB总结 Python嵌入式数据库/轻量级数据库介绍 在构建应用程序时&#xff0c;数据存储是必不可少的一部分。传统的方式是使用如MySQL、PostgreSQL这样的重量级数据库…...

USB PD v1.0快速充电通信原理

1 原理 本篇文章讲的快速充电是指USB论坛所发布的USB Power Delivery快速充电规范&#xff08;通过VBUS直流电平上耦合FSK信号来请求充电器调整输出电压和电流的过程&#xff09;&#xff0c;不同于本人发布的另一篇文章所讲的高通Quick Charger 2.0规范&#xff0c;因为高通QC…...

【华为】路由器以PPPoE拨号接入广域网

组网需求 用户希望以PPPoE拨号方式接入广域网&#xff0c;如图1所示&#xff0c;Router作为PPPoE客户端&#xff0c;得到PPPoE服务器的认证后获得IP地址&#xff0c;实现用户接入互联网的需求。内网网关地址&#xff08;即VLANIF1接口的IP地址&#xff09;为10.137.32.1/24。 …...

Linux内核分析(一)--内核架构和子系统

目录 一、引言 二、内核架构 ------>2.1、kernel源码获取 ------>2.2、cpuinfo ------>2.3、内核体系结构 ------>2.4、内核主要组件 三、内核源码及子系统 ------>3.1、整体结构与子系统 ------>3.2、cpuinfo ------>3.3、整体结构与子系统 -…...

【PyQt学习篇 · ⑨】:QWidget -控件交互

文章目录 是否可用是否显示/隐藏是否编辑是否为活跃窗口关闭综合案例信息提示状态提示工具提示“这是什么”提示 焦点控制单个控件角度父控件角度 是否可用 setEnabled(bool)&#xff1a;该函数用于设置QWidget控件的可用性&#xff0c;参数bool为True表示该控件为可用状态&…...

新版本IntelliJ IDEA(如2023)中运行Spring Boot找不到VM options进行端口的修改的问题解决

问题 如下图找不到VM options。 解决 进行如下操作即可。...

Swift语言配合HTTP写的一个爬虫程序

下段代码使用Embassy库编写一个Swift爬虫程序来爬取jshk的内容。我会使用proxy_host为duoip&#xff0c;proxy_port为8000的爬虫IP服务器。 使用Embassy库编写一个Swift爬虫程序可以实现从网页上抓取数据的功能。下面是一个简单的步骤&#xff1a; 1、首先&#xff0c;需要在X…...

【lvgl】linux开发板搭建环境

前言 本章介绍如何在linux开发板准备好了fb0的情况下移植lvgl。 抓取源码 git clone https://github.com/lvgl/lvgl.git git clone https://github.com/lvgl/lv_drivers.git git clone https://github.com/lvgl/lv_demos.git git clone https://github.com/lvgl/lv_port_lin…...

C之(10)CMocka-单元测试框架使用

CMocka基础使用 Author&#xff1a;Once Day Date&#xff1a;2023年6月15日 参考文档&#xff1a; GoogleTest User’s Guide | GoogleTest嵌入式自动化单元测试(2)-Cmocka - 知乎 (zhihu.com)使用 cmocka 进行单元测试 | 前尘逐梦 (qianchenzhumeng.github.io)cmocka - un…...

如何在idea中使用maven搭建tomcat环境

目录 一、创建maven项目 二、完善代码结构 三、引入依赖和插件 四、启动tomcat&#xff0c;运行项目 &#xff08;1&#xff09;点击添加配置 &#xff08;2&#xff09;点击左上角的加号&#xff0c;选择maven &#xff08;3&#xff09;输入运行命令 五、验证 一、创建…...

单点登录

单点登录&#xff08;Single Sign-On&#xff0c;简称SSO&#xff09;是一种可以让用户在多个应用程序和网站中使用同一组登录凭证的技术&#xff0c;即用户只需通过一次身份验证&#xff0c;就可以访问多个应用和网站。以下是单点登录的相关知识点&#xff1a; 1. 身份验证机…...

大数据(十):数据可视化(二)

专栏介绍 结合自身经验和内部资料总结的Python教程&#xff0c;每天3-5章&#xff0c;最短1个月就能全方位的完成Python的学习并进行实战开发&#xff0c;学完了定能成为大佬&#xff01;加油吧&#xff01;卷起来&#xff01; 全部文章请访问专栏&#xff1a;《Python全栈教…...

未来机器人的大脑:如何用神经网络模拟器实现更智能的决策?

编辑&#xff1a;陈萍萍的公主一点人工一点智能 未来机器人的大脑&#xff1a;如何用神经网络模拟器实现更智能的决策&#xff1f;RWM通过双自回归机制有效解决了复合误差、部分可观测性和随机动力学等关键挑战&#xff0c;在不依赖领域特定归纳偏见的条件下实现了卓越的预测准…...

19c补丁后oracle属主变化,导致不能识别磁盘组

补丁后服务器重启&#xff0c;数据库再次无法启动 ORA01017: invalid username/password; logon denied Oracle 19c 在打上 19.23 或以上补丁版本后&#xff0c;存在与用户组权限相关的问题。具体表现为&#xff0c;Oracle 实例的运行用户&#xff08;oracle&#xff09;和集…...

《Qt C++ 与 OpenCV:解锁视频播放程序设计的奥秘》

引言:探索视频播放程序设计之旅 在当今数字化时代,多媒体应用已渗透到我们生活的方方面面,从日常的视频娱乐到专业的视频监控、视频会议系统,视频播放程序作为多媒体应用的核心组成部分,扮演着至关重要的角色。无论是在个人电脑、移动设备还是智能电视等平台上,用户都期望…...

可靠性+灵活性:电力载波技术在楼宇自控中的核心价值

可靠性灵活性&#xff1a;电力载波技术在楼宇自控中的核心价值 在智能楼宇的自动化控制中&#xff0c;电力载波技术&#xff08;PLC&#xff09;凭借其独特的优势&#xff0c;正成为构建高效、稳定、灵活系统的核心解决方案。它利用现有电力线路传输数据&#xff0c;无需额外布…...

【JVM】- 内存结构

引言 JVM&#xff1a;Java Virtual Machine 定义&#xff1a;Java虚拟机&#xff0c;Java二进制字节码的运行环境好处&#xff1a; 一次编写&#xff0c;到处运行自动内存管理&#xff0c;垃圾回收的功能数组下标越界检查&#xff08;会抛异常&#xff0c;不会覆盖到其他代码…...

【项目实战】通过多模态+LangGraph实现PPT生成助手

PPT自动生成系统 基于LangGraph的PPT自动生成系统&#xff0c;可以将Markdown文档自动转换为PPT演示文稿。 功能特点 Markdown解析&#xff1a;自动解析Markdown文档结构PPT模板分析&#xff1a;分析PPT模板的布局和风格智能布局决策&#xff1a;匹配内容与合适的PPT布局自动…...

Java多线程实现之Callable接口深度解析

Java多线程实现之Callable接口深度解析 一、Callable接口概述1.1 接口定义1.2 与Runnable接口的对比1.3 Future接口与FutureTask类 二、Callable接口的基本使用方法2.1 传统方式实现Callable接口2.2 使用Lambda表达式简化Callable实现2.3 使用FutureTask类执行Callable任务 三、…...

【决胜公务员考试】求职OMG——见面课测验1

2025最新版&#xff01;&#xff01;&#xff01;6.8截至答题&#xff0c;大家注意呀&#xff01; 博主码字不易点个关注吧,祝期末顺利~~ 1.单选题(2分) 下列说法错误的是:&#xff08; B &#xff09; A.选调生属于公务员系统 B.公务员属于事业编 C.选调生有基层锻炼的要求 D…...

JDK 17 新特性

#JDK 17 新特性 /**************** 文本块 *****************/ python/scala中早就支持&#xff0c;不稀奇 String json “”" { “name”: “Java”, “version”: 17 } “”"; /**************** Switch 语句 -> 表达式 *****************/ 挺好的&#xff…...

2025季度云服务器排行榜

在全球云服务器市场&#xff0c;各厂商的排名和地位并非一成不变&#xff0c;而是由其独特的优势、战略布局和市场适应性共同决定的。以下是根据2025年市场趋势&#xff0c;对主要云服务器厂商在排行榜中占据重要位置的原因和优势进行深度分析&#xff1a; 一、全球“三巨头”…...