返回

Linux 部署 ZooKeeper 和 Kafka(用户权限)

后端

前言

ZooKeeper 和 Kafka 都是 Apache 基金会旗下的开源项目,在分布式系统中发挥着重要的作用。ZooKeeper 提供分布式协调服务,而 Kafka 是一个分布式发布-订阅消息系统。在这两个系统中,用户权限和安全配置都至关重要,因为它们影响着集群的安全性和可用性。本文将指导您在 Linux 服务器上部署 ZooKeeper 和 Kafka,重点关注用户权限和安全配置。通过设置用户权限和安全参数,您可以确保集群的安全并灵活地管理访问控制。

部署准备

在开始部署之前,请确保您拥有以下资源:

  • 一台或多台 Linux 服务器
  • ZooKeeper 和 Kafka 的安装包
  • Java 运行环境 (JRE)
  • 必要端口的访问权限
  • 防火墙规则(如果适用)

ZooKeeper 部署

  1. 下载并安装 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
    
  2. 配置 ZooKeeper

    修改 conf/zoo.cfg 文件,配置 ZooKeeper 的基本参数,例如:

    tickTime=2000
    initLimit=10
    syncLimit=5
    dataDir=/data/zookeeper
    clientPort=2181
    
  3. 启动 ZooKeeper

    bin/zkServer.sh start
    
  4. 创建管理员用户

    bin/zkCli.sh -server 127.0.0.1:2181
    create /admin-user username
    setAcl /admin-user world:cdrwa
    

Kafka 部署

  1. 下载并安装 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
    
  2. 配置 Kafka

    修改 config/server.properties 文件,配置 Kafka 的基本参数,例如:

    broker.id=0
    port=9092
    zookeeper.connect=127.0.0.1:2181
    log.dirs=/data/kafka
    
  3. 创建 Kafka 用户

    bin/kafka-acls.sh --create --authorizer-properties zookeeper.connect=127.0.0.1:2181
    --add resource=Topic:test permission=READ user=username
    

安全配置

  1. ZooKeeper 安全配置

    在 ZooKeeper 服务器上,配置安全参数,例如:

    authProvider.1=org.apache.zookeeper.server.auth.SASLAuthenticationProvider
    requireClientAuth=true
    
  2. Kafka 安全配置

    在 Kafka 服务器上,配置安全参数,例如:

    listeners=PLAINTEXT://127.0.0.1:9092
    inter.broker.listener.name=INTERNAL
    sasl.enabled.mechanisms=PLAIN
    sasl.mechanism.inter.broker.protocol=PLAIN
    
  3. 创建 SASL 文件

    创建文件 /etc/sasl2/kafka.sasl,配置 SASL 认证信息,例如:

    username:password
    

启动集群

  1. 启动 ZooKeeper 集群

    bin/zkServer.sh start
    
  2. 启动 Kafka 集群

    bin/kafka-server-start.sh config/server.properties
    

验证部署

  1. 使用客户端连接 ZooKeeper

    zkCli.sh -server 127.0.0.1:2181
    
  2. 使用客户端连接 Kafka

    kafka-console-producer.sh --topic test --message hello
    kafka-console-consumer.sh --topic test --from-beginning
    
  3. 验证用户权限

    kafka-acls.sh --authorizer-properties zookeeper.connect=127.0.0.1:2181
    --list resource=Topic:test
    

结语

通过本文的指导,您已经成功地在 Linux 服务器上部署了 ZooKeeper 和 Kafka,并配置了用户权限和安全参数。现在,您拥有一个可用的 ZooKeeper 和 Kafka 集群,并能够管理用户访问权限。您可以根据实际情况进一步优化集群的性能和安全性,例如,配置数据复制、监控和备份等功能。