中间件,我给它的定义就是为了实现某系业务功能依赖的软件,包括如下部分: Web服务器 代理服务器 ZooKeeper Kafka(本章节) 我们前面演示都是依赖ZooKeeper的版本,本小节我们介绍2...个版本不依赖ZooKeeper的版本,第一个版本就是我们前面使用的版本:kafka_2.13-2.8.2,它既支持使用ZooKeeper,也支持使用kraft。...#前面部分文件就是为了支持ZooKeeper的配置文件 #下面的目录就是不依赖的ZooKeeper的配置文件 [root@localhost config]# ll kraft/ total 40...可以你可以把理解存储到ZooKeeper的换成了下面的内容。...下面是Kafka4.0版本,从目录文件来看,它已经没有单独的kraft目录,因为它已经不支持ZooKeeper,默认的配置都是用于支持Kraft的。
Zookeeper 集群 Kafka 目前专注于消息处理方面的功能,大部分其他能力都是靠外部组件来实现的,比如搭建集群就需要依赖于 zookeeper,鉴权则用到了 Kerberos 和 SASL。...下面配置中的 kafka-* 这部分需要根据大家的环境信息替换为主机名或主机 IP。...1.2 SASL 鉴权 完成基本配置后 zookeeper 就可以正常使用了,但问题是只要能访问到 zookeeper 的端口,谁都可以使用,没有校验机制,这是不可接受的。...zookeeper 和 kafka 提供了两种安全验证机制:SSL 和 SASL,本文中使用的是 SASL,安全性上应该是 SSL 更好,不过 SASL 配置起来相对简单,所以暂时选用了 SASL。...zookeeper 的安装目录: $ tar zxvf zookeeper-sasl-jar.tar.gz $ sudo mv sasl /etc/zookeeper/ 然后修改 zoo.cfg 文件
requireClientAuthScheme=sasl jaasLoginRenew=3600000 2.2、Zookeeper 配置文件增加配置说明 # 身份验证提供程序 authProvider....1=org.apache.zookeeper.server.auth.SASLAuthenticationProvider # 需要客户端身份验证方案 requireClientAuthScheme...=sasl # jaas登录续订 jaasLoginRenew=3600000 2.3、Zookeeper 配置JAAS文件 # 配置JAAS文件 cat > config/zookeeper_jaas.conf...=SASL_PLAINTEXT sasl.enabled.mechanisms=PLAIN sasl.mechanism.inter.broker.protocol=PLAIN # 完成身份验证的类...authorizer.class.name=kafka.security.authorizer.AclAuthorizer # 如果没有找到ACL(访问控制列表)配置,则允许任何操作。
支持的安全协议有: 纯文本:侦听器,无需任何加密或身份验证。 SSL协议:使用TLS加密的侦听器,以及使用TLS客户端证书的身份验证(可选)。...SASL_PLAINTEXT:侦听器不加密,但具有基于SASL的身份验证。 SASL_SSL:具有基于TLS的加密和基于SASL的身份验证的侦听器。...SASL认证 使用Java身份验证和授权服务(JAAS)配置SASL身份验证。JAAS还用于验证Kafka和ZooKeeper之间的连接。 JAAS使用其自己的配置文件。...该文件位于/opt/kafka/config/jaas.conf,通过普通的未加密连接以及通过TLS连接都支持SASL身份验证。可以分别为每个侦听器启用SASL。...Kafka中的SASL身份验证支持几种不同的机制: 普通 根据用户名和密码实施身份验证。用户名和密码以Kafka配置存储在本地。
三、解决方案 网上百度了一堆没用的,我一一列举出来 第一个说是通过官网发现,在zookeeper 3.4.5之前,sasl认证是没有办法规避的,在3.4.6版本后修复了这个bug,因为不停的去检测认证虽然对功能没有什么影响...zk升级到3.4.6+的版本,可我的版本是zookeeper-3.4.13,肯定是符合的,无效。 第二个说是让zookeeper绕过sasl安全机制,禁用sasl认证,直接向系统获取资源。...第四个说是给zookeeper做安全配置,但是我的初衷是对Kafka客户端使用SASL身份验证,但不要求kafka对Zookeeper进行SASL身份验证,我不关心kafka zookeeper...当此参数设置为X500主体名称时,只有具有该主体的经过身份验证的客户端才能绕过ACL检查并拥有所有znode的完全权限。...,这个时候原来的sasl认证的错误信息没有了,出现了新的问题。
=102400 #请求套接字的最大缓冲区大小 socket.request.max.bytes=104857600 #kafka数据存放的路径 log.dirs=/home/xyp9x/kafka_sasl...=1 #segment文件保留的最长时间,超时将被删除 log.retention.hours=168 #配置连接Zookeeper集群地址 zookeeper.connect=bigdata111:2181...,bigdata112:2181,bigdata113:2181 #kafka连接zookeeper超时时间90s zookeeper.connection.timeout.ms=90000 #SASL_PLAINTEXT...#这里的listener中的hostname在三台机器上换成每台机器对应的hostname:ip listeners=SASL_PLAINTEXT://x.x.1.111:9092 #使用的认证协议...=PLAIN #完成身份验证的类 authorizer.class.name=kafka.security.auth.SimpleAclAuthorizer #如果没有找到ACL(访问控制列表)配置,则允许任何操作
如下图所示标记 但是,这样删除只是将刚刚的topic标记为删除状态,并没有真正意义上的删除,当重新创建一个同名的topic时,依然会报错,该topic已存在。...更改代码中,tomcat的心跳超时时间如下: 没有改之前的:; ....: Checksum failed Will continue connection to Zookeeper server without SASL authentication, if Zookeeper...针对yum管理的系统的安装方法为:yum install cyrus-sasl{,-plain}。...这也只是怀疑,因为出错之前没有监控JVM的情况,吃一堑,长一智,赶紧用zabbix将kafka的jvm监控起来。 之后,调整了下面的参数,先观察一段时间。
但是当你在 kafka 旁边使用 ZooKeeper 的时候,一定要记住一些重要的最佳实践。 ZooKeeper 节点的数量最大应该是五个。...下表重点显示了不同 Kafka 版本中依赖于 Zookeeper 的一些控制台操作。早期版本 0.8.0 在控制台没有提供很多功能。...Kafka 的安全选项和协议: SSL/SASL:客户端到代理、中介代理、代理到工具的身份验证。...SSL:客户端到代理之间、代理到代理之间和工具到代理之间的数据加密 SASL 类型:SASL/GSSAPI (Kerberos), SASL/PLAIN Zookeeper 安全性:为客户端 (代理、工具...、生产者、消费者) 进行身份验证,使用 ACL 进行授权。
比如/app这个znode,设置一些权限,只能某用户可以访问,但是/app/status的权限是与/app没有关系的,默认是world:anyone:cdrwa。 总的来说。...二、权限类型 当客户端连接到zooKeeper并对其自身进行身份验证,当客户端尝试访问znode节点时,将检查znode的acl。...sasl:设置为用户的uid,通过sasl Authentication用户的id,在zk3.4.4版本后sasl是通过Kerberos实现(即只有通过Kerberos认证的用户才可以访问权限的znode...),使用sasl:uid:cdwra字符串作为节点ACL的id(如:sasl:lyz:cdwra)。...设置权限的方式,比如:setAcl /hiveserver2 sasl:hive:cdrwa。
这决定了 TaskManager 可以同时拥有多少流数据交换通道以及通道缓冲的程度。 如果作业被拒绝或者您收到系统没有足够缓冲区的警告,请增加此值或下面的最小/最大值。...`使用凭证进行 ZooKeeper 身份验证和 Kafka 身份验证) # security.kerberos.login.contexts: Client,KafkaClient Zookeeper...安全配置 # 覆盖以下配置以提供自定义 ZK 服务名称 # zookeeper.sasl.service-name: zookeeper # 该配置必须匹配 "security.kerberos.login.contexts..." 中的列表(含有一个) # zookeeper.sasl.login-context-name: Client HistoryServer # 你可以通过 bin/historyserver.sh (...数 syncLimit=5 # 存储快照的目录 # dataDir=/tmp/zookeeper # 客户端将连接的端口 clientPort=2181 # ZooKeeper quorum
Kerberos 旨在通过密钥加密技术为客户端 / 服务器应用程序提供身份验证,主要用在域环境下的身份验证。...通过提供安全的身份验证机制,Kerberos 为最终用户和管理员提供了明显的好处。...zookeeper.sasl.service-name: 默认为 "zookeeper"。如果 ZooKeeper quorum 配置了一个不同的服务名称,那么可以在这里提供。...zookeeper.sasl.login-context-name: 默认为 "Client"。...user/host@realm 身份认证的操作,但票据 cache 中没有用于 user/host@realm 的票据。
下载与安装 下载地址:访问 Offset Explorer 官网 下载对应操作系统的版本(Windows/macOS/Linux)。...Zookeeper Host(可选):若需通过 Zookeeper 连接,填写地址(如 localhost:2181)。...Security Protocol:根据集群配置选择 PLAINTEXT、SSL 或 SASL。 Advanced 配置:可设置超时时间、JMX 端口等。...SASL_PLAINTEXT/SASL_SSL:启用身份验证(如 SCRAM)。 JMX Port:用于监控 Broker 指标(需 Kafka 启用 JMX)。...权限问题:若启用 ACL,需配置正确的用户名和密码。 总结 Offset Explorer 简化了 Kafka 集群的管理,适合开发者快速调试和运维人员日常监控。
在Ubuntu12.04 server上安装单结点kafka,我的机器上之前已经安装过zookeeper-3.4.5 根据官网的说明:http://kafka.apache.org/07/quickstart.html...下载一个kafka-0.7.2.tar.gz,解压安装 > tar xzf kafka-.tgz > cd kafka- > ....修改/config/server.properties文件,将里面的hostname修改为你主机的IP,还需要修改zk.connect为ZooKeeper的IP:2181。...:2181 --topic test --from-beginningThis is a test.升级到0.8.0-beta1升级之前要先将ZooKeeper中原版本的kafka生成的znode删除,...另外,新版本的一些命令与原版本的有些相同,列举如下:bin/kafka-create-topic.sh --zookeeper 192.168.20.99:2181 --replica 1 --partition
ZOO_CLIENT_PASSWORD_FILE:包含 Apache ZooKeeper 客户端用于执行身份验证的密码的文件的绝对路径。默认值:无默认值。...默认值:无默认值ZOO_ENABLE_AUTH:启用 Apache ZooKeeper 身份验证。它使用 SASL/Digest-MD5。...的身份验证ZOO_ENABLE_AUTH。...启用 Apache ZooKeeper 身份验证时,还需要传递能够登录的用户和密码列表。注意:使用 CLI 工具启用身份验证zkCli.sh。...这可以在指定或不指定集合中服务器的 ID 的情况下完成。没有默认值。
你可以参考 ZooKeeper 的[官方文档](https://zookeeper.apache.org/doc/r3.8.0/index.html)安装和配置 ZooKeeper。...:2181 其中,zk1, zk2, zk3 是你 ZooKeeper 集群的地址。...SASL 配置: - 配置 Kafka 使用 SASL 进行身份验证。编辑 `config/server.properties` 文件,设置 SASL 配置项。...8081,这个最好先试一下你的端口是否被占用了lsof -i tcp:port es的镜像对于我的系统没有匹配的,也做了修改 官网默认没有挂载相关的日志以及数据,这里建议挂载一下。...启动之后如果出现登录网络异常,请稍微等一下再试,你可以看下manage的日志,还没有完全启动 首次启动之后init模块加载完成后会自动退出 version: '2' services: # *不要调整
Hostname发布到Zookeeper供客户端使用。在IaaS环境中,Broker可能需要绑定不同的接口。如果没有设置,将会使用host.name(如果配置了)。...端口发布到Zookeeper供客户端使用,在IaaS环境中,broker可能需要绑定到不同的端口。如果没有设置,将和broker绑定的同一个端口。...高 quota.consumer.default 过时的:当默认动态的quotas没有配置或在Zookeeper时。...高 quota.producer.default 过时的:当默认动态的quotas没有配置,或在zookeeper时。如果生产者每秒比此值高,所有生产者将通过clientId区分限流。...ssl.client.auth=requested 客户端认证可选,不同于requested ,客户端可选择不提供自身的身份验证信息* ssl.client.auth=none 不需要客户端身份认证 string
(以前公司好像没有使用安全认证) kafka 提供了多种安全认证机制,主要分为 SSL 和 SASL 两大类。...starting at version 2.0 几种方式具体的实现方法可以看看中文文档,里面有详细的介绍,本次主要介绍 SASL/SCRAM 认证。...apache-zookeeper-3.7.0 kafka-2.3.0 首先启动 zookeeper 和 kafka ###### 启动 zookeeper D:\work-soft\tool\apache-zookeeper...=D:\work-soft\tool\kafka\config\kafka-server-jass.conf zookeeper 的添加方式是在 zkServer.cmd 里面添加: "-Djava.security.auth.login.config...SCRAM-SHA-256 sasl.enabled.mechanisms=SCRAM-SHA-256 完成以上操作后重启 Zookeeper 和 Kafka。
ip:使用客户端的IP地址作为ACL的ID,可以设置为一个IP段(如:ip:192.168.0.1/8) sasl:设置为用户的uid,通过sasl Authentication用户的ID,在zk3.4.4...版本后sasl是通过Kerberos实现(即只有通过Kerberos认证的用户才可以访问权限的znode),使用sasl:uid:cdwra字符串作为节点ACL的ID(如:sasl:fayson:cdwra...创建一个/zktest-sasl的zonde,并设置ACL权限为sasl:fayson:cdrwa,操作如下: create /zktest-sasl data sasl:fayson:cdrwa ls...可以看到设置ACL为fayson用户后无法正常访问与删除/zktest-sasl,接下来使用jaas.conf文件进行认证登录Zookeeper zk-cli-jaas.conf文件的内容如下,由于我们创建的...4.CDH中依赖ZK服务的Znode ACL权限问题 ---- 在启用Kerberos前,各服务已向Zookeeper服务注册,所以这些Znode默认是没有使用ACL权限控制的,在集群启用Kerberos
目前支持以下安全措施: 使用SSL或SASL(Kerberos)对来自客户端(生产者和消费者),其他代理和工具的代理的连接进行身份验证。SASL / PLAIN也可以从版本0.10.0.0起使用。...: ssl.client.auth = none(“required”=>客户端身份验证是必需的,“请求”=>请求客户端身份验证,并且没有证书的客户端仍然可以连接。...Kafka客户端的SASL配置 只有新的Java Kafka生产者和使用者才支持SASL身份验证,不支持旧的API。在客户端上配置SASL身份验证: 选择SASL机制进行身份验证。...Kafka客户端 在客户端上配置SASL身份验证: 客户端(生产者,消费者,连接工人等)将使用自己的主体(通常与运行客户端的用户具有相同的名称)向集群进行身份验证,因此根据需要获取或创建这些主体.../bin/zookeeper-security-migration --help 7.6.3迁移ZooKeeper集合 还需要在ZooKeeper集合上启用身份验证。