上次的笔记介绍的是zookeeper的安装、部署、部分java客户端代码,这次我们使用java自带的Jconsole或jvisualvm工具进行对zookeeper进行监控。
1、首先,zookeeper并没有配置开启远程连接jmx的端口信息,而是默认开启了本地连接而已。所以,我们需要添加一些配置,这些配置位于zookeeper目录下的bin/zkServer.sh中:
bin/Server.sh
============before============
ZOOMAIN="-Dcom.sun.management.jmxremote
-Dcom.sun.management.jmxremote.local.only=$JMXLOCALONLY
org.apache.zookeeper.server.quorum.QuorumPeerMain"
============before============
替换为
=============new==============
ZOOMAIN="-Dcom.sun.management.jmxremote=21811
-Dcom.sun.management.jmxremote.ssl=false
-Dcom.sun.management.jmxremote.authenticate=false
org.apache.zookeeper.server.quorum.QuorumPeerMain"
=============new==============
这样我们就开启了21811的JMX远程端口 ,且不需要权限。
2、开启jvisualvm
在命令行输入jvisualvm即可打开监控界面,不过需要安装一些插件,在工具栏的插件窗口可以进行安装。
我们主要使用的插件是Mbean,接着打开Mbean界面,如下:
3、监控
在上面的图片中,可以看到我们的leader节点为replica.2,剩余的两个节点并不能点击,因为我们此时连接的就是leader节点,如果想看另外两个节点的情况,需要再通过连接另外两个节点才行。
在org.apache.ZooKeeperService节点下,可以看到ReplicatedServer_id2节点,表示当前连接的zookeeper服务器的SID为2。再往下又有3个节点,表示我们当前的集群中共有3台服务器。
点击replica.x、Leader、InMemoryDataTree后,在右侧的窗口中,能看到服务器的基本配置信息。
另外,我们当前连接的节点还能点击Operations标签,里面的方法点击后能更多的集群信息,比如在Leader的Operations标签中,有followerInfo选项,点击后显示的便是集群中follower的少部分信息,如下:
更多的信息,需要对zookeeper有一定的了解,充分熟悉zoo.cfg文件后便能望文知意了。