跳到主要内容

Zookeeper 可视化UI工具

· 阅读需 4 分钟

推荐几款常用的 Zookeeper UI 工具,以帮助我们提高工作效率。

为什么需要一个 UI 工具

Zookeeper 自带的命令行客户端 zkCli.sh 能满足基本操作,但用起来并不顺手:查看节点树要一层层 ls,看节点数据要单独 get,节点多了之后很难对整体结构有直观印象。日常排查注册中心、分布式锁、配置节点这类问题时,一个能把 Znode 树状结构、节点数据和 stat 元信息直接展示出来的图形工具,可以省下不少敲命令的时间。

Zookeeper 的数据模型本身很简单:一棵由 Znode 组成的树,每个节点可以存少量数据,附带版本号、ACL、创建/修改时间等 stat 信息。所以这类 UI 工具的核心能力也大同小异,主要就是节点的增删改查、数据编辑和连接管理,差别更多体现在界面体验和维护活跃度上。下面是我接触过的几款。

Zookeeper Assistant(收费)

ZooKeeper Assistant - ZooKeeper可视化管理与监控工具

这是 Redisant 家的桌面客户端,界面风格和他们家其他产品一脉相承:左侧节点树、右侧数据面板,节点数据和元信息一目了然。

对于收费来说,个人感觉是没必要的,ZK的功能并不复杂,主要就是Znode节点信息的CRUD,不过看得出来他们的UI界面是用心做了的,对于这点就值得点赞。如果公司愿意报销、又追求开箱即用的体验,可以考虑;个人使用的话,下面的免费方案已经够用。

PrettyZoo(开源免费)

这款本人也在使用,免费,UI又比较耐看。

github地址:vran-dev/PrettyZoo: 😉 Pretty nice Zookeeper GUI, Support Win / Mac / Linux Platform (github.com)

它是基于 JavaFX 开发的桌面应用,Windows、Mac、Linux 三个平台都有安装包。除了基本的节点树浏览和数据编辑,还能查看节点的 stat 信息,也内置了命令行终端,图形界面覆盖不到的操作可以直接敲命令补上。对我来说,"免费 + 跨平台 + 界面不丑 + 还在维护"这几点加起来,就足够把它设为默认选择了。

zktools

太久没有维护,github上已经是4年前的产物,不过还是感谢作者的付出。

GitHub - zhangyawei117/zktools: zk可视化工具zktools

早年可选项不多的时候它帮过不少人,现在有更活跃的替代品,一般不建议新用户再入手,列在这里主要是致敬。

zkui

基于Web应用开发的ZKUI工具,最后一次更新也是2年前了,个人基本上很少去使用。

github地址:https://github.com/DeemOpen/zkui

和前面几款桌面客户端不同,zkui 是部署在服务端的 Web 应用,团队成员通过浏览器访问,适合"一处部署、多人共用"的场景。代价是需要自己维护一个服务,还要考虑登录和权限问题;如果只是个人日常查看节点,桌面客户端更省事。

踩坑与注意

1)连接生产环境的 ZK 时要格外小心。这类工具删节点、改数据往往就是一次点击,没有二次确认的心理负担,误删一个注册中心节点影响的可能是一批服务。建议生产环境只用来"看",写操作还是走脚本或变更流程。

2)留意 ACL。如果集群配置了 ACL 鉴权,工具连上后可能只能看到部分节点或读不到数据,这不是工具的 bug,先确认连接时是否带了正确的认证信息。

3)长期不维护的工具(如上面的 zktools、zkui)在新版本 Zookeeper 或新版 JDK 上可能出现兼容性问题,遇到诡异报错时先怀疑版本,别急着怀疑集群。

小结

几款工具里,我的选择很明确:日常个人使用直接上 PrettyZoo,免费、跨平台、界面耐看且仍在维护;追求商业软件体验、预算充足的可以看看 Zookeeper Assistant;需要团队共享一个入口的再考虑 Web 版的 zkui。工具本身都不复杂,挑一个顺手的,把省下来的时间花在真正的问题上就好。

评论 / COMMENTS