Strategy ONE

配置 Zookeeper ACL

Zookeeper中的znode默认具有World权限。使用下面显示的方法,您可以将 Zookeeper znode 的管理访问限制为仅 Zookeeper、Kafka 和 Consumer 机器的 IP 地址。按照以下步骤将 znode 的 ACL 更改为基于 IP 的方案。

连接到 Zookeeper 客户端并为特定节点启用 ACL

  1. 找到连接到 Zookeeper 所需的文件。

    视窗

    复制
    C:\Program Files (x86)\MicroStrategy\Messaging Services\Kafka\kafka_2.13-3.2.0\bin\windows\zookeeper-shell.bat

    Linux

    复制
    /opt/MicroStrategy/MessagingServices/Kafka/kafka_2.13-3.2.0/bin/zookeeper-shell.sh
  2. 使用以下方式连接到 Zookeeper zookeeper-shell.bat <IP1>:<Port> , <IP2>:<Port>

    视窗

    .\zookeeper-shell.bat 10.23.39.148:2181,10.23.35.115:2181

    Linux

    ./zookeeper-shell.sh 10.23.36.181:2181,10.23.33.221:2181

  3. 通过运行以下命令验证 Zookeeper 中的 znode 是否具有 World 权限:

    复制
    getAcl /brokers

  4. 重置所有 znode 上的 ACL。

    复制
    setAcl -R / ip:<IP1>:cdrwa,ip:<IP2>:cdrwa,ip:<IP3>:cdrwa,...

    setAcl -R / ip:10.250.151.242:cdrwa,ip:10.250.155.99:cdrwa

  5. 使用以下命令显示所有允许的 znode,验证各个节点的 ACL:

    复制
    getAcl /brokers

确保包含所有 Kafka、Zookeeper 和 Consumer 机器的 IP 地址,以使系统继续工作。除了 IP 地址之外,您还可以包含 127.0.0.1 以用于本地主机访问。

测试消费者和 Kafka

设置 ACL 后,进行测试以确保 Consumer 和 Kafka 正常运行。

  1. 停止所有 Kafka 节点。

  2. 停止所有 Zookeeper 节点。

  3. 启动所有 Zookeeper 节点。

  4. 所有 Zookeeper 节点启动后,启动所有 Kafka 节点。

  5. 启动消费者。