ZooKeeper JMX(十一)

JMX

ZooKeeper对JMX有额外的支持,允许你查看和管理Zk群集。

这个文档假设你对JMX有基本的了解。参考 Sun JMX Technology来对JMX进行入门。

关于安装一个本地和远端管理的VM实例的详细信息请参考JMX Management Guide 。默认包含的zkServer.sh 只支持本地管理 - 查看连接的文档来开启远程管理的支持(不在本文档的讨论范围之内)。

带着JMX启动ZK

org.apache.zookeeper.server.quorum.QuorumPeerMai将启动一个可用JMX管理的ZooKeeper服务。这个类在初始化的时候注册适当的MBeans来支持JMX监控和实例管理。参考bin/zkServer.sh关于使用QuorumPeerMai启动ZK的例子。

运行JMX控制台

有几个可用的JMX控制台可以连接到运行的服务端。对于这个例子,我们将使用Sun的jconsole.

Java JDK本身带着一个JMX控制台叫jconsole,这可以被用来连接ZK和查看运行的服务端。一旦你使用QuorumPeerMai启动了ZK,启动jconsole,它通常放在JDK_HOME/bin/jconsole

当通过本地进程连接或使用远程进程连接来显示一个新连接的窗口。

默认地"overview"标签被展示成VM的信息(这是一个了解VM的好方法)。选择"MBeans"标签。

你现在应该可以看到org.apache.ZooKeeperService在左手边。展开这个条目,根据你怎么启动的服务,你将可以监控和管理不现的服务端相关的特性。

同时注意Zk也将会注册log4jMbeans。在左边的同一区域你将会看到"log4j".展示它来通过JMX管理log4j。告别有趣的是可以动态改变日志级别。通过修改附加器(appender)和root阈值。

ZK MBean手册

这个表格详述了加入一个ZK集群的服务端的JMX。这是生产环境典型的案例。

MBeans,他们的名字和描述

MBean MBean 对象名称 描述
Quorum ReplicatedServer_id<#> 代表法定人数,或者集群 - 所有集群成员的父亲。注意对象名字包括你的JMX连接到的服务端的myid
LocalPeer|RemotePeer replica.<#> 代表一个本地或远程的点(也就是群集的参与者)。注意对象名字包括服务端的myid
LeaderElection LeaderElection 代表一个正在进行的ZK集群选举。提供了关于选举的信息,例如什么时候开始
Leader Leader 表明父复制品是领导者并且提供属性/操作者为这个服务。注意领导者是ZooKeeperServer的子类,所有它提供所有关于ZooKeeperServer节点的信息。
Follower Follower 表明父复制品是一个追随者并且提供属性/操作者为这个服务。注意追随者是ZooKeeperServer的子类,所有它提供所有关于ZooKeeperServer节点的信息。
DataTree InMemoryDataTree 关于内存中的节点数据库的统计,和关于数据(例如临时节点数量)的访问操作的详细(更计算密集型)信息InMemoryDataTrees 是ZooKeeperServer节点的子类。
ServerCnxn <session_id> 关于每一个客户端连接的和关于这些连接的操作的统计信息。注意对象名字是连接的会话id的16进制格式

这个表述详述了一个单机服务的JMX。通常单机服务只用于开发环境

MBeans,他们的名字和描述

MBean MBean对象名字 描述
ZooKeeperServer StandaloneServer_port<#> 有关于运行中的服务和重置这些属性的统计。注意对象名包括服务端的客户端端口
DataTree InMemoryDataTree 有关于内存中znode数据库和关于这些数据的访问操作的详细统计。
ServerCnxn <session_id>  关于每一个客户端连接的和关于这些连接的操作的统计信息。注意对象名字是连接的会话id的16进制格式

 

  插播个广告 


老丈人家的粉皮儿,农产品,没有乱七八糟的添加剂,欢迎惠顾
 
posted @ 2016-07-07 13:45  dupang  阅读(1501)  评论(0编辑  收藏  举报