ZooKeeper监控有以下几种方法:
ZK提供一些简单但是功能强大的4字命令,通过对这些4字命令的返回内容进行解析,可以获取不少关于ZK运行时的信息。
用jmx也能够获取一些运行时信息,详细可以查看这里:http://zookeeper.apache.org/doc/r3.4.3/zookeeperJMX.html
淘宝网已经实现的一个ZooKeeper监控——TaoKeeper,已开源,在这里:http://rdc.taobao.com/team/jm/archives/1450,主要功能如下:
A、机器CPU/MEM/LOAD的监控
B、ZK日志目录所在磁盘空间监控
C、单机连接数的峰值报警
D、单机Watcher数的峰值报警
E、节点自检
F、ZK运行时信息展示
ZK使用log4j作为日志系统,conf目录中有一份默认的log4j配置文件。
不同的zookeeper server生成的snapshot文件和事务日志文件的格式都是一致的(无论是什么环境,或是什么样的zoo.cfg 配置)。因此,如果某一天生产环境中出现一些古怪的问题,你就可以把这些文件下载到开发环境的zookeeper中加载起来,便于本地调试发现问题,而不会影响生产运行。另外,使用这些较旧的snapshot和事务日志,我们还能够方便的让ZK回滚到一个历史状态。