随着线上越来越多的系统依赖Zookeeper集群,以至于Zookeeper集群的运行状况越来越重要。但是目前还没有什么好用的Zookeeper集群监控系统(淘宝开源了一个Zookeeper监控系统,但是我觉得很不好用,里面主要有四个线程在跑,而且需要SSH登录到线上集群,这用起来很不方便。)于是我们开发了一套Zookeeper集群监控程序,可以监控Zookeeper集群。
从官方文档我们可以了解到,监控Zookeeper集群可以用两种方法:
The ZooKeeper service can be monitored in one of two primary ways; 1) the command port through the use of 4 letter words and 2) JMX. See the appropriate section for your environment/requirements.
我这套系统就是基于方法一实现的。更多的详情可以参考官方文档。下面贴一下我们系统的图:
这是系统的菜单功能,分别包含了Zookeeper集群配置、集群监控、报警设置以及系统设置等功能。
这里列出了Zookeeper的所有机器的简单概括。点击IP可以进入到集群的简单概括,可以查看到集群是否运行正常等信息,如下图所示:
下图是某一具体机器的所有客户端连接详情:
下图是某一具体机器的所有监听目录的详情:
这是某一具体机器的图形化监控图:
本博客文章除特别声明,全部都是原创!原创文章版权归过往记忆大数据(过往记忆)所有,未经许可不得转载。
本文链接: 【Zookeeper Monitor集群监控开发】(https://www.iteblog.com/archives/1085.html)
17年了 还不考开源么
大神,考虑开个源呗。。。挺好的。。。
大神这,这个重新命名后,去掉敏感信息。开源多少!
这个为什么不开源啊?挺好的一个监控程序
真的可以开源 ,可以把公司敏感信息去掉 供学习使用
这个项目真心挺好的,我试过netflix的exhibitor,不是很满意,还有淘宝的根本不能用…… 强烈建议贵公司开源出来,利远大于弊。
是否可以开源贡献到github
想看代码。。
不好意思,这是公司的项目,虽然是我做的,还是也不能公布出代码。
代码呢。。。。
不好意思,这是公司的项目,虽然是我做的,还是也不能公布出代码。
用什么来执行四字命令呢?
调用系统命令执行。
我知道,监控系统如何远程执行命令?ssh、telnet.....
可以直接echo 各台机器的ip
查看集群的4字命令是什么呢,集群数据是否只能用jmx?
Zookeeper的四字命令有conf、cons、crst、dump、envi、ruok、srst、srvr、stat、wchs、wchc、wchp、mntr。jmx这个应该也可以监控集群。详情可以查看官方文档的说明。
嗯,这些4字命令之前都试过了,没找到显示集群信息的命令。估计只能用jmx了。3Q
你要显示集群的什么信息?
你们上面第2张图的集群机器列表,是根据输入的已知的机器列表展示的呢,还是查询出来展示的?我想做到知道其中一个zk的地址查询出来展示所有zk集群的地址。
那张图是从数据库里面读出来的,不过我觉得应该可以直接从Zookeeper里面获取这些信息。
用JMX连上看了下,还是没有集群信息。Zookeeper没有办法做动态集群。初始化的配置文件已经把集群地址固定好了。zk5.0有了一个自带的web控制台,空了试下有没有提供这个。自己是不想折腾了