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 代码: 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…...
线性代数 第五章 特征值与特征向量
一、特征值定义 二、特征值求法 定义法;;相似。 三、特征向量求法 定义法;基础解系法;;相似。 四、特征值性质 不同特征值的特征向量线性无关k重特征值至多有k个线性无关的特征向量 五、相似的定义 若ÿ…...
Python嵌入式数据库 / 轻量级数据库 / 小型数据库介绍(SQLite、Pandas DataFrame、TinyDB)(python数据库)
文章目录 Python嵌入式数据库/轻量级数据库介绍什么是嵌入式数据库/轻量级数据库?SQLitePandasTinyDB总结 Python嵌入式数据库/轻量级数据库介绍 在构建应用程序时,数据存储是必不可少的一部分。传统的方式是使用如MySQL、PostgreSQL这样的重量级数据库…...
USB PD v1.0快速充电通信原理
1 原理 本篇文章讲的快速充电是指USB论坛所发布的USB Power Delivery快速充电规范(通过VBUS直流电平上耦合FSK信号来请求充电器调整输出电压和电流的过程),不同于本人发布的另一篇文章所讲的高通Quick Charger 2.0规范,因为高通QC…...
【华为】路由器以PPPoE拨号接入广域网
组网需求 用户希望以PPPoE拨号方式接入广域网,如图1所示,Router作为PPPoE客户端,得到PPPoE服务器的认证后获得IP地址,实现用户接入互联网的需求。内网网关地址(即VLANIF1接口的IP地址)为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):该函数用于设置QWidget控件的可用性,参数bool为True表示该控件为可用状态&…...
新版本IntelliJ IDEA(如2023)中运行Spring Boot找不到VM options进行端口的修改的问题解决
问题 如下图找不到VM options。 解决 进行如下操作即可。...
Swift语言配合HTTP写的一个爬虫程序
下段代码使用Embassy库编写一个Swift爬虫程序来爬取jshk的内容。我会使用proxy_host为duoip,proxy_port为8000的爬虫IP服务器。 使用Embassy库编写一个Swift爬虫程序可以实现从网页上抓取数据的功能。下面是一个简单的步骤: 1、首先,需要在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:Once Day Date:2023年6月15日 参考文档: GoogleTest User’s Guide | GoogleTest嵌入式自动化单元测试(2)-Cmocka - 知乎 (zhihu.com)使用 cmocka 进行单元测试 | 前尘逐梦 (qianchenzhumeng.github.io)cmocka - un…...
如何在idea中使用maven搭建tomcat环境
目录 一、创建maven项目 二、完善代码结构 三、引入依赖和插件 四、启动tomcat,运行项目 (1)点击添加配置 (2)点击左上角的加号,选择maven (3)输入运行命令 五、验证 一、创建…...
单点登录
单点登录(Single Sign-On,简称SSO)是一种可以让用户在多个应用程序和网站中使用同一组登录凭证的技术,即用户只需通过一次身份验证,就可以访问多个应用和网站。以下是单点登录的相关知识点: 1. 身份验证机…...
大数据(十):数据可视化(二)
专栏介绍 结合自身经验和内部资料总结的Python教程,每天3-5章,最短1个月就能全方位的完成Python的学习并进行实战开发,学完了定能成为大佬!加油吧!卷起来! 全部文章请访问专栏:《Python全栈教…...
Perplexity法律文献搜索实战指南:7步构建精准检索式,避开90%的无效结果
更多请点击: https://codechina.net 第一章:Perplexity法律文献搜索实战指南:7步构建精准检索式,避开90%的无效结果 Perplexity 作为面向专业研究者的AI搜索工具,在法律文献检索中展现出远超通用搜索引擎的语义理解与…...
保姆级教程:用kitti2bag把KITTI数据集转成ROS bag,新手避坑指南(附2011_09_26小数据集下载)
从KITTI到ROS Bag:零基础实战转换指南 第一次接触KITTI数据集和ROS时,我完全被那些复杂的文件结构和专业术语搞晕了。作为一个计算机视觉和机器人领域的经典数据集,KITTI包含了丰富的传感器数据,但直接使用这些原始数据对新手来说…...
Windows Cleaner终极指南:开源免费解决C盘爆满问题的高效方案
Windows Cleaner终极指南:开源免费解决C盘爆满问题的高效方案 【免费下载链接】WindowsCleaner Windows Cleaner——专治C盘爆红及各种不服! 项目地址: https://gitcode.com/gh_mirrors/wi/WindowsCleaner Windows Cleaner是一款基于Python和PyQt…...
为开源Agent框架Hermes配置Taotoken作为模型供应商
🚀 告别海外账号与网络限制!稳定直连全球优质大模型,限时半价接入中。 👉 点击领取海量免费额度 为开源Agent框架Hermes配置Taotoken作为模型供应商 本文将详细介绍如何在Hermes Agent项目中,将其模型供应商配置为Tao…...
保姆级教程:从Solidworks模型到Matlab SimMechanics仿真,搞定你的六轴机械臂动力学分析
六轴机械臂动力学仿真全流程:从Solidworks到Matlab SimMechanics实战指南 在工业自动化与机器人研发领域,机械臂的动力学仿真已成为验证设计合理性的关键环节。本文将手把手带你完成从Solidworks三维建模到Matlab SimMechanics动力学仿真的完整工作流&am…...
深度解析SacreBLEU:5个实战技巧提升机器翻译评估效率
深度解析SacreBLEU:5个实战技巧提升机器翻译评估效率 【免费下载链接】sacrebleu Reference BLEU implementation that auto-downloads test sets and reports a version string to facilitate cross-lab comparisons 项目地址: https://gitcode.com/gh_mirrors/s…...
从SparseConvTensor到Rulebook:图解spconv稀疏卷积的核心工作流程
从SparseConvTensor到Rulebook:图解spconv稀疏卷积的核心工作流程 稀疏卷积(Sparse Convolution)作为处理3D点云数据的关键技术,正在重塑计算机视觉领域的格局。想象一下,当传统卷积神经网络在密集的2D图像上大展拳脚时…...
考研数学避坑指南:那些课本不讲但真题爱考的极限与无穷小细节
考研数学避坑指南:那些课本不讲但真题爱考的极限与无穷小细节 考研数学中,极限与无穷小的概念看似基础,却暗藏玄机。每年都有大量考生在看似简单的题目上失分,原因往往是对这些概念的深层理解不足。本文将聚焦真题中最常见的陷阱&…...
手把手教你用Spark MLlib搞定协同过滤:从ItemCF到UserCF的保姆级代码解析
Spark MLlib实战:从协同过滤到深度学习推荐系统的全链路实现 推荐系统作为机器学习领域最具商业价值的应用之一,其核心算法在Spark生态中有着丰富的实现。本文将带您深入Spark MLlib的推荐算法实践,从经典的协同过滤到前沿的深度学习模型&…...
Perplexity AI认证考试情报解密(2024Q3动态锁频版):仅限内部渠道更新的题库变动预警
更多请点击: https://intelliparadigm.com 第一章:Perplexity AI认证考试情报解密(2024Q3动态锁频版):仅限内部渠道更新的题库变动预警 核心变动速览 2024年第三季度起,Perplexity AI官方对认证考试实施“…...
