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全栈教…...
Java 语言特性(面试系列1)
一、面向对象编程 1. 封装(Encapsulation) 定义:将数据(属性)和操作数据的方法绑定在一起,通过访问控制符(private、protected、public)隐藏内部实现细节。示例: public …...
YSYX学习记录(八)
C语言,练习0: 先创建一个文件夹,我用的是物理机: 安装build-essential 练习1: 我注释掉了 #include <stdio.h> 出现下面错误 在你的文本编辑器中打开ex1文件,随机修改或删除一部分,之后…...
智能在线客服平台:数字化时代企业连接用户的 AI 中枢
随着互联网技术的飞速发展,消费者期望能够随时随地与企业进行交流。在线客服平台作为连接企业与客户的重要桥梁,不仅优化了客户体验,还提升了企业的服务效率和市场竞争力。本文将探讨在线客服平台的重要性、技术进展、实际应用,并…...
srs linux
下载编译运行 git clone https:///ossrs/srs.git ./configure --h265on make 编译完成后即可启动SRS # 启动 ./objs/srs -c conf/srs.conf # 查看日志 tail -n 30 -f ./objs/srs.log 开放端口 默认RTMP接收推流端口是1935,SRS管理页面端口是8080,可…...
C++八股 —— 单例模式
文章目录 1. 基本概念2. 设计要点3. 实现方式4. 详解懒汉模式 1. 基本概念 线程安全(Thread Safety) 线程安全是指在多线程环境下,某个函数、类或代码片段能够被多个线程同时调用时,仍能保证数据的一致性和逻辑的正确性…...
稳定币的深度剖析与展望
一、引言 在当今数字化浪潮席卷全球的时代,加密货币作为一种新兴的金融现象,正以前所未有的速度改变着我们对传统货币和金融体系的认知。然而,加密货币市场的高度波动性却成为了其广泛应用和普及的一大障碍。在这样的背景下,稳定…...
均衡后的SNRSINR
本文主要摘自参考文献中的前两篇,相关文献中经常会出现MIMO检测后的SINR不过一直没有找到相关数学推到过程,其中文献[1]中给出了相关原理在此仅做记录。 1. 系统模型 复信道模型 n t n_t nt 根发送天线, n r n_r nr 根接收天线的 MIMO 系…...
NXP S32K146 T-Box 携手 SD NAND(贴片式TF卡):驱动汽车智能革新的黄金组合
在汽车智能化的汹涌浪潮中,车辆不再仅仅是传统的交通工具,而是逐步演变为高度智能的移动终端。这一转变的核心支撑,来自于车内关键技术的深度融合与协同创新。车载远程信息处理盒(T-Box)方案:NXP S32K146 与…...
【电力电子】基于STM32F103C8T6单片机双极性SPWM逆变(硬件篇)
本项目是基于 STM32F103C8T6 微控制器的 SPWM(正弦脉宽调制)电源模块,能够生成可调频率和幅值的正弦波交流电源输出。该项目适用于逆变器、UPS电源、变频器等应用场景。 供电电源 输入电压采集 上图为本设计的电源电路,图中 D1 为二极管, 其目的是防止正负极电源反接, …...
AI+无人机如何守护濒危物种?YOLOv8实现95%精准识别
【导读】 野生动物监测在理解和保护生态系统中发挥着至关重要的作用。然而,传统的野生动物观察方法往往耗时耗力、成本高昂且范围有限。无人机的出现为野生动物监测提供了有前景的替代方案,能够实现大范围覆盖并远程采集数据。尽管具备这些优势…...
