几款ZooKeeper可视化工具,最后一个美炸了~

本文首发于公众号:BiggerBoy
欢迎关注

ZooKeeper是我们工作中常用一个开源的分布式协调服务,提供分布式数据一致性解决方案,分布式应用程序可以实现数据发布订阅、负载均衡、命名服务、集群管理分布式锁、分布式队列等功能。

‍当我们想通过人为操作去查看、管理ZK上的数据时,就亟需一个可视化操作界面。下面给大家介绍几款目前市面上流行的ZK可视化工具,有需要时就可以直接用啦。

ZooInspector


Apache官方基于Java的zookeeper可视化工具,功能比较简单。

下载地址:
https://issues.apache.org/jira/secure/attachment/12436620/ZooInspector.zip

用法:

下载后解压
图片

然后进入目录ZooInspector\build, 执行java -jar zookeeper-dev-ZooInspector.jar

然后会弹出操作窗口。ZooInspector\src下即是他的源码。

连接zk:
图片

连接后即可展示出根节点下的所有节点,节点变化后不会自动更新,需要点击工具栏的刷新按钮
在这里插入图片描述

不过它可以添加监听,有变化时会在右下角弹出个小框提示发生变更。

GitHub上也有很多基于此的开源项目,进行了一些优化完善,感兴趣的可以去搜搜。

zkui

GitHub开源项目
源码地址:
https://github.com/DeemOpen/zkui

2.2K的star,内置jetty的web可视化界面。

使用也很简单,下载源码后,可以看到config.cfg,可以修改服务的端口,默认9090,修改zkServer地址。

执行maven clean install打成成jar,运行java -jar zkui-2.0-SNAPSHOT.jar
或者直接在编译器中运行main函数,启动内置的jetty。

然后访问http://localhost:9090/

用户名:admin 密码:manager 可以在config.cfg中配置,对应key是userSet。
图片

图片

zkdash

掌阅科技开源的zookeeper管理界面,也可以作为任何基于zookeeper的配置管理项目。

源码地址:
https://github.com/ireaderlab/zkdash

依赖环境:MySQL、python2.7,版本最好 >= 2.7.6

由于是基于python的,没去尝试。不过它的github里有详细的安装教程,贴两个图给大家看下,功能还是比较完善的,感兴趣的可以去尝试下。
图片
图片

prettyZoo

名字prettyZoo,意为美丽的动物园,确实界面比上面的两种好看多了,也是开源项目,2.1K的star。

下载地址:
https://github.com/vran-dev/PrettyZoo/releases

如下,下载windows的安装包
图片

安装后双击桌面图标打开
图片

点击左侧创建,即可填写zk的地址,点击左下角保存
图片

它支持创建多个连接,会在左侧列出来
图片

双击即可连接到zk,点击节点后,数据也是一目了然,包括节点列表,元数据,和data。
图片

经过测试发现,它连接后节点变化会实时更新,不用手动刷新。

ZooKeeperAssistant

ZooKeeperAssistant意为zookeeper助手,是一款zookeeperk可视化管理与监控工具,它的界面也是相当漂亮,个人感觉UI设计比上面的prettyZoo还要好看,比较合我胃口。毕竟它是企业化的可视化工具(有些功能需要收费)。

下载地址:
http://www.redisant.cn/za
图片
安装好双击桌面图标
图片
它也支持创建多个连接,且会保存在左侧。
图片
点击连接后,左侧展示节点,双击可展开查看数据,可以调节字体大小,可以搜索,查看节点元数据和权限控制,还可以操作导入导出节点数据;支持多种数据格式,包括JSON,Message Pack、XML、HEX;
图片
可以新建节点/子节点,可以设置ACL
图片
可以打开命令行控制台。
图片
仪表盘功能,提供服务器实时监控节点信息。
图片

这几款比较下来,最后一款真是爱了。你喜欢哪一款呢?欢迎评论区留言讨论~

在 Kubernetes 集群中部署 ZooKeeper,可以通过 YAML 文件定义一个 ZooKeeper 的 Deployment 和一个 Service,然后使用 kubectl apply 命令进行部署。 下面是一个示例 YAML 文件,用于在 Kubernetes 集群中部署一个 3 节点的 ZooKeeper: ```yaml apiVersion: apps/v1 kind: Deployment metadata: name: zookeeper spec: replicas: 3 selector: matchLabels: app: zookeeper template: metadata: labels: app: zookeeper spec: containers: - name: zookeeper image: zookeeper:3.5.8 ports: - containerPort: 2181 env: - name: ZOO_MY_ID valueFrom: fieldRef: fieldPath: metadata.uid - name: ZOO_SERVERS value: "server.1=zookeeper-0:2888:3888;2181 server.2=zookeeper-1:2888:3888;2181 server.3=zookeeper-2:2888:3888;2181" volumeMounts: - name: zookeeper-data mountPath: /data - name: zookeeper-datalog mountPath: /datalog volumes: - name: zookeeper-data emptyDir: {} - name: zookeeper-datalog emptyDir: {} --- apiVersion: v1 kind: Service metadata: name: zookeeper spec: selector: app: zookeeper ports: - name: client port: 2181 protocol: TCP targetPort: 2181 clusterIP: None ``` 这个 YAML 文件定义了一个 Deployment 和一个 Service。Deployment 中指定了 3 个副本,使用的镜像为 zookeeper:3.5.8。每个 ZooKeeper 节点会挂载两个空目录作为数据存储目录和事务日志目录。ZooKeeper 的配置通过环境变量 ZOO_MY_ID 和 ZOO_SERVERS 指定。ZOO_MY_ID 表示当前节点的 ID,可以使用 Kubernetes 中的 UID 来自动生成。ZOO_SERVERS 表示集群中所有节点的 ID、主机名、端口号等信息。 Service 中定义了一个名为 zookeeper 的 headless service,用于暴露 ZooKeeper 集群的 2181 端口,以供客户端连接。由于使用了 clusterIP: None,这个 Service 不会创建 ClusterIP,只会创建 Endpoints,用于将客户端请求转发到后端 ZooKeeper 节点。 将上述 YAML 文件保存为 zk.yaml,并使用 kubectl apply 命令进行部署: ``` kubectl apply -f zk.yaml ``` 部署完成后,可以使用 kubectl get 命令查看 ZooKeeper 的 Deployment 和 Service: ``` $ kubectl get deployment zookeeper NAME READY UP-TO-DATE AVAILABLE AGE zookeeper 3/3 3 3 2m $ kubectl get svc zookeeper NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE zookeeper ClusterIP None <none> 2181/TCP 2m ``` 如果需要可视化地管理 Kubernetes 集群和部署应用程序,也可以使用一些 Kubernetes Dashboard 工具,例如 Kubernetes Dashboard、KubeSphere 等。这些工具提供了一系列的图形化操作和监控界面,方便用户进行集群管理和应用程序部署。
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

程序员beige

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值