监控Apache Zookeeper


Apache Zookeeper - 概述

Apache Zookeeper是一个开源服务器,它可靠地协调分布式进程和应用程序。它允许分布式进程通过与标准文件系统类似的共享层级式的名称空间相互协调。ZooKeeper服务器维护配置信息,名称,提供分布式同步,并提供组服务,以供分布式应用程序使用。

监控Apache Zookeeper - 监控内容

Apache Zookeeper提供了一个分级的文件系统(以ZNodes作为系统文件),它有助于在不同机器中的的发现、注册、配置、锁定、leader选举、排队等工作服务。Applications Manager是帮助管理员管理他们的Zookeeper服务器,收集所有在故障排除时可以帮助的指标, 并自动提醒潜在的问题。让我们看看监控Zookeeper您需要看什么以及与Applications Manager一起收集的性能指标:

  • 资源利用详情 -自动发现Zookeeper集群,监控znode上的内存(堆和非堆),获取资源消耗变化的告警。
  • 线程和JVM的使用情况 - 跟踪线程使用的指标,如Daemon,峰值和实时线程计数。确保启动的线程不会使服务器的内存负载。
  • 性能统计 - 计算服务器响应客户端请求、在服务器中的排队请求和连接情况以及由于网络使用(发送和接收的客户端数据包)而导致的性能下降所需的时间。
  • 集群和配置详细信息 -跟踪Znodes的数量,节点上的观察者设置和全部的跟随者数量。关注Leader选举统计和客户会话时间。
  • 更快地解决性能问题 -当Apache Zookeeper的组件出现性能问题时,获取即时通知。意识到性能瓶颈,并在最终用户发觉问题之前采取快速补救措施。

Apache Zookeeper - 添加新的监视器

支持的版本:3.4.9

监控Apache Zookeeper指标的先决条件:点击此处

使用REST API添加一个新的Apache Zookeeper监视器:点击此处

要创建Apache Zookeeper监视器,请遵循下面给出的步骤:

  1. 点击 添加监视器 链接。选择 Apache Zookeeper.
  2. 输入监视器的 显示名称 。
  3. 输入 zookeeper服务器运行的主机 IP地址或主机名称。
  4. 输入Zookeeper服务器的JMX端口。默认情况下为7199。或者在 zkServer.sh 文件中查找JMX_PORT。
  5. 若要只发现此节点而不是发现集群中的所有节点,请禁用发现集群中的所有节点 选项。默认情况下此选项是启用的,这意味着默认情况下会发现集群中的所有节点。
  6. 输入凭证详细信息,如用户名、密码 JNDIPath,或从凭证管理列表 中选择凭证。
  7. 选中Is Authentication Required 字段以提供用于连接到Zookeeper服务器的jmx凭证。
  8. 以分钟为单位输入 轮询间隔 时间。
  9. 如果要测试对ApacheZookeeper服务器的访问,点击 测试凭证 按钮。
  10. 从要与Apache Zookeeper监视器关联的组合框中选择 业务组 (可选)。您可以选择多个组来关联您的监视器。
  11. 点击 添加监视器。 这会开始从网络中发现Apache Zookeeper并监控它。 

注意:
如果您无法在启用JMX之后添加监视器,请尝试提供以下参数:
 -Djava.rmi.server.hostname=[YOUR_IP]

监控的参数

点击监视器 选项卡,之后到监视器类别视图。点击 服务 表下的 Apache Zookeeper。显示的是Apache Zookeeper的批量配置视图,分布在三个选项卡中:

  • 可用性 选项卡给出过去24小时或30天的可用性历史。
  • 性能 选项卡给出过去24小时或30天的健康状况和事件。
  • 列表视图使您能够执行批量管理配置。

点击监视器名称,查看以下选项卡列出的所有服务器详细信息:

概述

参数 描述
LEADER ELECTION 状态
Replica Name 碎片副本名称。
State 如果不是在一个团体中运行,服务模式:leader, follower,Leader Election 或 standalone。
Election in Progress 表明Election是否正在进行。值可以是YES或NO。
Election Start Time Leader elections开始的时间。
内存详细信息
Total Physical Memory Size 用于Zookeeper操作和存储的物理内存总大小。
Free Physical Memory Size 可供Zookeeper集群和节点使用的可用物理内存总大小。
Committed Virtual Memory Size 当前由相应Zookeeper节点占用的虚拟内存总大小。
Total Swap Space Size 当虚拟内存达到极限时,可用于交换的交换空间总大小。
Free Swap Space Size 当虚拟内存达到极限时,可用于自由交换的交换空间大小。
线程详细信息
Daemon Thread Count 正在运行的Daemon线程数量。Daemon线程是一个即使线程仍在运行也不会阻止JVM在程序完成时退出的线程。
Peak Thread Count 自JVM启动以来的最大线程计数。
Live Thread Count 节点上当前的线程(daemon和non-daemon)数量。
Total Started Thread Count 启动线程的总数。
堆内存详细信息
Committed Heap Memory 提交堆内存的总量。
Initial Heap Memory 分配的最小堆内存。
Maximum Heap Memory Zookeeper可以使用的最大堆内存。
Used Heap Memory 总使用的堆内存。
非堆内存详细信息
Committed Non-Heap Memory 提交的非堆内存的总量。
Initial Non-Heap Memory 分配的最小非堆内存。
Maximum Non-Heap Memory Zookeeper可以使用的最大非堆内存。
Used Non-Heap Memory 总使用的非堆内存。

性能

参数 描述
数据包统计
Packets Received/Min 接收的数据包数。(速率为每分钟)
Packets Sent/Min 发送的数据包数。(速率为每分钟)
延迟
Minimum Request Latency 服务器响应客户端请求所需的最小时间(从服务器启动以来)。时间单位为毫秒。
Average Request Latency 服务器响应客户端请求所需的平均时间(从服务器启动以来)。时间单位为毫秒。
Maximum Request Latency 服务器响应客户端请求所需的最大时间(从服务器启动以来)。时间单位 为毫秒。
活跃的连接数量
活Number of Connections Alive 活跃的连接数量
未完成的请求数
No of Outstanding Requests 服务器中排队请求的数量。当服务器接收到的请求超过它所能处理的请求时,其数量会上升。

在内存数据树中

参数 描述
节点数量
Node Count Zookeeper中的节点数。
观察数量
Watch Count 在Zookeeper节点上设置观察者的数量。
短暂出现的节点数量
Ephemeral Node Count 短暂出现的节点数量
相似数据大小
Approximate Data Size 所用数据的大小。(以字节为单位)。

集群详细信息

参数 描述
节点数量
Node Count Zookeeper集群中的znodes数。
观察数量
Watch Count 在Zookeeper节点上设置观察者的数量。
短暂出现的节点数量
Ephemeral Node Count 短暂出现的节点数量。(Apache ZooKeeper中的短暂 节点 对于瞬态数据非常有用:只要创建znode的会话处于活动状态,这些znode就存在。)
相似的数据大小
Approximate Data Size  使用的数据大小。(以字节为单位)。

配置

参数 描述
ZOOKEEPER配置详细信息
Replica Name  
State  
Client Port 侦听客户端连接的端口。
Init Limit 允许跟随者连接和同步到领导者的时间量,以刻度为单位(请参见计时时间)。如果ZooKeeper管理的数据量很大,则根据需要增加此值。
Max Client Connections Per Host 由IP地址标识的单个客户端的最大并发连接数(在套接字级别)。
Max Session Timeout 服务器允许客户端协商的最大会话超时(以毫秒为单位)。默认为计时时间的20倍。
Min Session Timeout 服务器允许客户端协商的最小会话超时(以毫秒为单位)。默认为计时时间的2倍。
Quorum Address 在同一应用程序中复制的一组服务器称为 quorum,在复制模式中,所有包含quorum地址的服务器都相互联系。
Zookeeper Start Time Zookeeper启动的时间。
Sync Limit 允许跟随者同步ZooKeeper的时间量,以刻度为单位(请参见计时时间)。如果追随者远远落后于领导者,他们就会被抛弃。
Tick 一个刻度的长度,是ZooKeeper使用的基本时间单位,以毫秒为单位。
Tick Time 一个刻度的长度,是ZooKeeper使用的基本时间单位,以毫秒为单位。它用于调节心跳和超时。例如,最小会话超时将是两个刻度。
Version 安装的zookeeper版本。
配置详细信息
VM Name Java虚拟机的名称。
Boot Class Path 引导类加载程序用于搜索类文件的引导类路径。
VM Vendor Java虚拟机实施的供应商。
Class Path 系统类加载程序用于搜索类文件的Java类路径。
Spec Vendor 本产品实施JMX规范的供应商。
Spec Version 本产品实施JMX规范的版本。