ZooKeeper命令和监控详解

ZooKeeper监控命令详解

在分布式系统中,ZooKeeper作为一个非常重要的协调服务,它的健康状态直接影响到整个系统的可靠性和稳定性。因此,对ZooKeeper进行有效监控是非常必要的。本文将详细介绍ZooKeeper提供的命令行工具zkCli.sh,这些工具可以帮助我们监控和管理ZooKeeper服务器。

ZooKeeper简介

ZooKeeper是一个开源的分布式协调服务,它提供了一组简单的原语用于构建更高级的同步服务。ZooKeeper主要用于解决分布式系统中的一些关键问题,如数据一致性、系统配置管理、分布式锁等。

ZooKeeper监控的重要性

监控系统的性能和健康状况对于确保ZooKeeper的高可用性和可靠性至关重要。通过监控,我们可以及时发现潜在的问题并采取相应的措施。例如,我们可以监控ZooKeeper的连接数、会话数、磁盘使用情况等指标。

ZooKeeper操作命令

zkCli.sh 是 ZooKeeper 提供的命令行客户端工具,可用于连接 ZooKeeper 服务器并执行各种操作,包括监控和管理 ZooKeeper 数据树。以下是 zkCli.sh 中的一些常用操作命令:

连接到 ZooKeeper 服务器:

./zkCli.sh -server <server_host>:<server_port>

在这里插入图片描述

列出指定节点下的所有子节点:

ls -s /path

例如,列出根节点下的子节点:

ls /

在这里插入图片描述

查看节点数据:

get /path/to/node

在这里插入图片描述

查看节点状态:

stat /path/to/node

在这里插入图片描述

Zookeeper四个字母监控

ZooKeeper作为一种分布式协调服务,内置了一系列简短却实用的四字母命令,这些命令可通过TCP客户端连接ZooKeeper的服务端口(默认为2181)进行发送,从而实现对ZooKeeper服务器的基本监控与诊断。开发者们可以利用诸如telnet或nc(netcat)等工具与ZooKeeper进行交互,执行这些命令以获取服务器的关键状态信息。

以下列举了几种常见的四字母命令及其功能:

  • stat 命令:用于揭示ZooKeeper服务的基本状态参数,包括当前的连接数、活跃会话数、节点总量等重要数据。

  • ruok 命令:用于检测ZooKeeper服务是否处于正常的运行状态,若服务运转正常,ZooKeeper将返回字符串“imok”。

  • conf 命令:用于输出ZooKeeper服务器当前所应用的配置详情,帮助运维人员确认配置是否符合预期。

  • srvr 命令:提供更为详尽的服务器状态报告,涵盖了更多有关ZooKeeper服务器内部状态的细节信息。

  • wchs 命令:展示ZooKeeper中当前已注册Watcher的整体数量。

  • wchc 命令:列举出所有已被客户端观察的ZooKeeper节点及其对应的路径。

  • wchp 命令:展示每个被观察节点的路径与其关联的Watcher数量。

值得注意的是,默认情况下并非所有四字母命令都在ZooKeeper中启用,为了安全起见,管理员需在zoo.cfg配置文件中通过4lw.commands.whitelist配置项明确指定允许执行的四字母命令集合。例如:

4lw.commands.whitelist=stat,ruok,conf,srvr,wchs,wchc,wchp

AdminServer

ZooKeeper 从 3.5.0 版本起引入了一个名为 AdminServer 的内置 Jetty 服务器,该服务器提供了一个 HTTP 接口,用于执行四字命令。在默认配置下,此服务器会监听 8080 端口,并可通过访问 URL “/commands/[命令名]” 来执行相应命令,例如通过 http://localhost:8080/commands/stat 来获取服务器状态。这些命令的响应将以 JSON 格式返回。与原先仅接受四个字母的命令不同,新版本中的命令名称更加灵活,可以采用多个字符;例如,“STMK”也可以命名为“set_trace_mask”。若要查看所有可用命令的列表,只需在浏览器中访问 URL /commands(如 http://localhost:8080/commands)。
在这里插入图片描述
可用命令包括:

  • connection_stat_reset/crst:重置所有客户端连接统计信息。不返回新的字段。

  • configuration/conf/config:打印服务的基本配置信息,例如客户端端口和数据目录的绝对路径。

  • connections/cons:提供与服务器建立的客户端连接的相关信息。注意,如果客户端连接数量很大,执行此操作可能较为昂贵(即可能影响服务器性能)。返回一个包含连接信息对象的列表“connections”。

  • hash:事务摘要的历史记录列表中的摘要信息,每128个交易记录一个摘要。返回一个包含事务摘要对象的列表“digests”。

  • dirs:日志文件目录和快照目录的大小(以字节为单位)信息。返回“datadir_size”和"logdir_size"两个字段。

  • dump:会话过期和临时节点信息。注意,如果全局会话和临时节点数量较大,此操作可能影响服务器性能。返回映射“expiry_time_to_session_ids”和“session_id_to_ephemeral_paths”。

  • environment/env/envi:所有定义的环境变量。每个变量都作为单独的字段返回。

  • get_trace_mask/gtmk:当前的跟踪掩码。这是一个只读版本的set_trace_mask命令。有关更多信息,请参阅关于stmk四字命令的描述。返回字段“tracemask”。

  • initial_configuration/icfg:打印用于启动节点的配置文件文本。返回字段“initial_configuration”。

  • is_read_only/isro:指示服务器是否处于只读模式的布尔值。返回字段“read_only”。

  • last_snapshot/lsnp:提供关于ZooKeeper服务器最后一次成功保存到磁盘的快照的信息。如果在服务器启动和首次保存快照期间调用此命令,将返回启动服务器时读取的快照信息。返回字段“zxid”和“timestamp”,其中“timestamp”使用秒作为时间单位。

  • leader/lead:如果集群配置为仲裁模式,则显示当前节点的领导者状态和当前领导者的地理位置。返回字段“is_leader”、“leader_id”和“leader_ip”。

  • monitor/mntr:输出多种用于监控的有用信息,包括性能统计、内部队列信息以及数据树概览(以及其他诸多内容)。每个信息都作为单独的字段返回。

  • observer_connection_stat_reset/orst:重置所有观察者连接统计信息。与observers命令相辅相成,不返回新的字段。

  • restore/rest:从输入流中恢复数据库到当前服务器。响应负载中返回的字段:“last_zxid”(String)。注意:此API受到速率限制(默认每5分钟一次),以防止服务器过载。

  • ruok:空操作命令,检查服务器是否正在运行。响应的存在并不一定意味着服务器已加入仲裁,仅表示管理服务器已激活并绑定了指定的端口。不返回新的字段。

  • set_trace_mask/stmk:设置跟踪掩码(因此需要一个参数)。get_trace_mask命令的写入版本。有关更多信息,请参阅关于stmk四字命令的描述。返回字段“tracemask”。

  • server_stats/srvr:服务器信息。返回多个字段,提供服务器状态的简要概述。

  • snapshot/snap:在当前服务器的数据目录中拍摄快照,并通过流输出数据。可选查询参数:“streaming”:布尔值(如果未提供参数,则默认为true)。通过Http头部返回以下信息:“last_zxid”(String)和“snapshot_size”(String)。注意:此API受到速率限制(默认每5分钟一次),以防止服务器过载。

  • stats/stat:与server_stats相同,但也返回“connections”字段(有关详细信息,请参阅connections命令)。注意,如果客户端连接数量很大,此操作可能影响服务器性能。

  • stat_reset/srst:重置服务器统计信息。这是server_stats和stats返回信息的一个子集。不返回新的字段。

  • observers/obsr:提供与服务器建立的观察者连接的信息。在领导者节点上始终可用,在充当学习主节点的跟随者节点上也可用。返回字段“synced_observers”(整数)和“observers”(观察者属性的列表)。

  • system_properties/sysp:所有定义的系统属性。每个属性都作为单独的字段返回。

  • voting_view:提供当前参与投票的ensemble成员列表。返回字段“current_config”(一个映射)。

  • watches/wchc:按会话聚合的监视器信息。注意,如果监视器数量很多,此操作可能影响服务器性能。返回映射“session_id_to_watched_paths”。

  • watches_by_path/wchp:按路径聚合的监视器信息。注意,如果监视器数量很多,此操作可能影响服务器性能。返回映射“path_to_session_ids”。

  • watch_summary/wchs:汇总的监视器信息。返回字段“num_total_watches”、“num_paths”和“num_connections”。

  • zabstate:指示节点当前正在运行的Zab协议阶段以及它是否为投票成员。节点可能处于以下阶段之一:ELECTION、DISCOVERY、SYNCHRONIZATION、BROADCAST。返回字段“voting”和“zabstate”。

总结

通过以上介绍的ZooKeeper命令,我们可以方便地查看ZooKeeper服务器的各种信息,从而更好地监控和管理ZooKeeper。在实际使用中,我们可以根据需要选择适当的命令进行监控。同时,我们还可以通过编写脚本或使用第三方监控工具,定期执行这些命令并将结果发送到指定的邮箱或监控系统,以实现自动化监控。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/542074.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

树莓派与电脑视频实时传输实现

编程环境 1、 树莓派 4B 2、 windows 编程语言 python 应用 tkinter scoket opencv 效果 视频同传 服务端视频初始化 服务端视频读取 windows 客户端接收视频流&#xff0c;队列存储 解析视频&#xff0c;存入队列 ui页面数据刷新 下载链接&#xff1a;https://…

移远通信亮相AWE 2024,以科技力量推动智能家居产业加速发展

科技的飞速发展&#xff0c;为我们的生活带来了诸多便利&#xff0c;从传统的家电产品到智能化的家居设备&#xff0c;我们的居家生活正朝着更智能、更便捷的方向变革。 3月14日&#xff0c;中国家电及消费电子博览会&#xff08;Appliance&electronics World Expo&#xf…

使用 Boot Camp 助理查明您的 Mac 需不需要 Windows 安装介质

使用 Boot Camp 助理查明您的 Mac 需不需要 Windows 安装介质 当前的 Mac 机型无需介质即可安装 Windows&#xff0c;也就是说&#xff0c;您不需要用到外置驱动器。较早的 Mac 机型需要用到 USB 驱动器或光盘驱动器。使用 Boot Camp 助理可查明您需要用到什么。 Boot Camp 助…

CSS之字体镂空

方法一(有缺陷)&#xff1a; <!DOCTYPE html> <html> <head> <meta charset"utf-8"> <title>Examples</title> <style> .num1{-webkit-text-stroke: 0.4px red; }</style> </head> <body><div clas…

git bash 命令行反应慢、卡顿(定位出根本原因)

参考该博主&#xff1a; https://blog.csdn.net/weixin_50212044/article/details/131575987?utm_mediumdistribute.pc_relevant.none-task-blog-2defaultbaidujs_baidulandingword~default-0-131575987-blog-130024908.235v43pc_blog_bottom_relevance_base4&spm1001.210…

无硫防静电手指套:高科技产业的纯净与安全新选择

随着科技的飞速发展&#xff0c;高科技产业对于生产环境的纯净度和产品的防静电要求日益严格。为了满足这一高标准的需求&#xff0c;无硫防静电手指套应运而生&#xff0c;以其独特的无硫特性和出色的防静电功能&#xff0c;迅速成为了高科技产业中的纯净与安全新选择。 无硫手…

Linux:网络的初步认知

文章目录 网络的认知如何理解协议 本篇将会引入到网络的话题 网络的认知 第一个问题是&#xff0c;网卡是文件吗&#xff1f;答案是显然的&#xff0c;在Linux下一切皆文件&#xff0c;基于这个原理对于网卡依然是文件&#xff0c;所以第一个建立起的初步认识是&#xff0c;不…

AI日报:欧盟人工智能法案通过后行业面临合规障碍

文章目录 人工智能新规对web爬网的影响对英国的影响。 人工智能新规 立法者已经通过了欧盟人工智能法案。企业现在必须确保其人工智能应用程序符合规则。 全面的新规定对可能影响公民权利的人工智能系统实施制裁&#xff0c;并有可能彻底禁止某些系统。 违反规定的公司可能面…

excel导入功能(适用于vue和react都可)

如图所示&#xff08;需求&#xff09;&#xff1a;点击导入excel后&#xff0c;数据自动新增到列表数据内 这里以vue3 andt 为例 template 标签内代码 &#xff1a; <a-uploadname"file":multiple"true":show-upload-list"false":customR…

SpringMVC重点记录

目录 1.学习重点2.回顾MVC3.回顾servlet4.初始SpringMVC4.1.为什么要学SpringMVC?4.2.SpringMVC的中重点DispatcherServlet4.3.SpringMVC项目的搭建4.4.MVC框架要做哪些事情?4.5.可能会遇到的问题 5.SpringMVC的执行原理6.使用注解开发SpringMVC7.Controller控制总结8.RestF…

perl 用 XML::LibXML DOM 解析 Freeplane.mm文件,生成测试用例.csv文件

Freeplane 是一款基于 Java 的开源软件&#xff0c;继承 Freemind 的思维导图工具软件&#xff0c;它扩展了知识管理功能&#xff0c;在 Freemind 上增加了一些额外的功能&#xff0c;比如数学公式、节点属性面板等。 在云计算中&#xff0c;解析XML元素和属性是一种常见的操作…

IDEA中的打包Build Artifacts详解

现在大家是不是很少遇见自己打包部署项目了&#xff0c;因为现在都是自动化部署&#xff0c;所以基本大的公司都没有了这一步。当项目开发完毕&#xff0c;需要对外发布时&#xff0c;我们就会用到IDEABuild Artifacts功能&#xff0c;那么如果在idea中打包呢。 在没有创建Arti…