ZooKeeper JMX
JMX
Apache ZooKeeper对JMX提供了广泛的支持,允许您查看和管理ZooKeeper服务集合。
本文档假定您具有JMX的基本知识。请参阅Sun JMX技术页面以开始使用JMX。
有关设置VM实例的本地和远程管理的详细信息,请参阅“ JMX管理指南”。默认情况下,包含的 zkServer.sh仅支持本地管理 - 查看链接的文档以启用对远程管理的支持(超出本文档的范围)。
在启用JMX的情况下启动ZooKeeper
org.apache.zookeeper.server.quorum.QuorumPeerMain类 将启动JMX可管理的ZooKeeper服务器。此类在初始化期间注册适当的MBean,以支持JMX监视和实例管理。有关使用QuorumPeerMain启动ZooKeeper的一个示例,请参阅bin /zkServer.sh。
运行JMX控制台
有许多可用的JMX控制台可以连接到正在运行的服务器。在本例中,我们将使用Sun的 jconsole。
Java JDK附带一个名为jconsole的简单JMX控制台 ,可用于连接ZooKeeper并检查正在运行的服务器。一旦你使用QuorumPeerMain启动ZooKeeper启动jconsole,它通常位于 JDK_HOME / bin / jconsole中
显示“新连接”窗口时,要么连接到本地进程(如果jconsole在与服务器相同的主机上启动),要么使用远程进程连接。
默认情况下,将显示VM的“概述”选项卡(这是深入了解VM btw的好方法)。选择“MBeans”选项卡。
您现在应该 在左侧看到org.apache.ZooKeeperService。展开此项目,根据您启动服务器的方式,您将能够监视和管理各种服务相关功能。
另请注意,ZooKeeper也会注册log4j MBean。在左侧的同一部分,您将看到“log4j”。展开它以通过JMX管理log4j。特别感兴趣的是能够动态更改编辑appender和根阈值所使用的日志记录级别。通过在启动ZooKeeper时将-Dzookeeper.jmx.log4j.disable = true传递给JVM,可以禁用Log4j MBean注册 。此外,我们可以使用-Dzookeeper.jmx.log4j.mbean = log4j:hierarchy = default 选项指定MBean的名称,以防我们需要使用旧的MBean名称(log4j:hiearchy = default)升级集成系统。
ZooKeeper MBean参考
此表详细介绍了参与复制的ZooKeeper集合的服务器的JMX(即不是独立的)。这是生产环境的典型案例。
MBean,他们的名字和描述
| 的MBean | MBean对象名称 | 描述 |
|---|---|---|
| 法定人数 | ReplicatedServer_id <#> | 表示Quorum或Ensemble - 所有集群成员的父级。请注意,对象名称包含JMX代理已连接到的服务器(名称后缀)的“myid”。 |
| LocalPeer /远程同级 | 复制品。<#> | 表示本地或远程对等方(即参与集合的服务器)。请注意,对象名称包含服务器的“myid”(名称后缀)。 |
| LeaderElection | LeaderElection | 表示正在进行的ZooKeeper集群领导者选举。提供有关选举的信息,例如何时开始。 |
| 领导 | 领导 | 表示父副本是领导者,并为该服务器提供属性/操作。请注意,Leader是ZooKeeperServer的子类,因此它提供了通常与ZooKeeperServer节点关联的所有信息。 |
| 信徒 | 信徒 | 表示父副本是关注者,并为该服务器提供属性/操作。请注意,Follower是ZooKeeperServer的子类,因此它提供了通常与ZooKeeperServer节点关联的所有信息。 |
| 的Datatree | InMemoryDataTree | 内存znode数据库的统计信息,也用于访问数据的更精细(和计算密集度更高)的统计数据(例如短暂计数)。InMemoryDataTrees是ZooKeeperServer节点的子节点。 |
| ServerCnxn | <SESSION_ID> | 每个客户端连接的统计信息,以及这些连接上的操作(例如终止)。请注意,对象名称是十六进制形式的连接的会话ID。 |
此表详细介绍了独立服务器的JMX。通常,独立仅用于开发情况。
MBean,他们的名字和描述
| 的MBean | MBean对象名称 | 描述 |
|---|---|---|
| ZooKeeperServer | StandaloneServer_port <#> | 运行服务器的统计信息,以及重置这些属性的操作。请注意,对象名称包括服务器的客户端端口(名称后缀)。 |
| 的Datatree | InMemoryDataTree | 内存znode数据库的统计信息,也用于访问数据的更精细(和计算密集度更高)的统计数据(例如短暂计数)。 |
| ServerCnxn | <session_id> | 每个客户端连接的统计信息,以及这些连接上的操作(例如终止)。请注意,对象名称是十六进制形式的连接的会话ID。 |

418

被折叠的 条评论
为什么被折叠?



