Linux 部署 ZooKeeper 和 Kafka(用户权限)
2023-09-15 13:56:31
前言
ZooKeeper 和 Kafka 都是 Apache 基金会旗下的开源项目,在分布式系统中发挥着重要的作用。ZooKeeper 提供分布式协调服务,而 Kafka 是一个分布式发布-订阅消息系统。在这两个系统中,用户权限和安全配置都至关重要,因为它们影响着集群的安全性和可用性。本文将指导您在 Linux 服务器上部署 ZooKeeper 和 Kafka,重点关注用户权限和安全配置。通过设置用户权限和安全参数,您可以确保集群的安全并灵活地管理访问控制。
部署准备
在开始部署之前,请确保您拥有以下资源:
- 一台或多台 Linux 服务器
- ZooKeeper 和 Kafka 的安装包
- Java 运行环境 (JRE)
- 必要端口的访问权限
- 防火墙规则(如果适用)
ZooKeeper 部署
-
下载并安装 ZooKeeper
wget https://archive.apache.org/dist/zookeeper/zookeeper-3.8.0/zookeeper-3.8.0.tar.gz tar -xzf zookeeper-3.8.0.tar.gz cd zookeeper-3.8.0
-
配置 ZooKeeper
修改
conf/zoo.cfg
文件,配置 ZooKeeper 的基本参数,例如:tickTime=2000 initLimit=10 syncLimit=5 dataDir=/data/zookeeper clientPort=2181
-
启动 ZooKeeper
bin/zkServer.sh start
-
创建管理员用户
bin/zkCli.sh -server 127.0.0.1:2181 create /admin-user username setAcl /admin-user world:cdrwa
Kafka 部署
-
下载并安装 Kafka
wget https://archive.apache.org/dist/kafka/3.3.1/kafka_2.13-3.3.1.tgz tar -xzf kafka_2.13-3.3.1.tgz cd kafka_2.13-3.3.1
-
配置 Kafka
修改
config/server.properties
文件,配置 Kafka 的基本参数,例如:broker.id=0 port=9092 zookeeper.connect=127.0.0.1:2181 log.dirs=/data/kafka
-
创建 Kafka 用户
bin/kafka-acls.sh --create --authorizer-properties zookeeper.connect=127.0.0.1:2181 --add resource=Topic:test permission=READ user=username
安全配置
-
ZooKeeper 安全配置
在 ZooKeeper 服务器上,配置安全参数,例如:
authProvider.1=org.apache.zookeeper.server.auth.SASLAuthenticationProvider requireClientAuth=true
-
Kafka 安全配置
在 Kafka 服务器上,配置安全参数,例如:
listeners=PLAINTEXT://127.0.0.1:9092 inter.broker.listener.name=INTERNAL sasl.enabled.mechanisms=PLAIN sasl.mechanism.inter.broker.protocol=PLAIN
-
创建 SASL 文件
创建文件
/etc/sasl2/kafka.sasl
,配置 SASL 认证信息,例如:username:password
启动集群
-
启动 ZooKeeper 集群
bin/zkServer.sh start
-
启动 Kafka 集群
bin/kafka-server-start.sh config/server.properties
验证部署
-
使用客户端连接 ZooKeeper
zkCli.sh -server 127.0.0.1:2181
-
使用客户端连接 Kafka
kafka-console-producer.sh --topic test --message hello kafka-console-consumer.sh --topic test --from-beginning
-
验证用户权限
kafka-acls.sh --authorizer-properties zookeeper.connect=127.0.0.1:2181 --list resource=Topic:test
结语
通过本文的指导,您已经成功地在 Linux 服务器上部署了 ZooKeeper 和 Kafka,并配置了用户权限和安全参数。现在,您拥有一个可用的 ZooKeeper 和 Kafka 集群,并能够管理用户访问权限。您可以根据实际情况进一步优化集群的性能和安全性,例如,配置数据复制、监控和备份等功能。