ZooKeeper命令和监控详解

news2025/1/11 16:56:51

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.coloradmin.cn/o/1519974.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Prometheus 轻量化部署和使用

文章目录 说明Prometheus简介Grafana简介prometheus和Grafana的关系环境准备&#xff08;docker&#xff09;docker安装时间时区问题&#xff08;我的代码中&#xff09;dockers镜像加速和服务器时区设置 数据库准备(mysql、redis)mysql配置redis配置 Prometheus、grafana下载和…

Linux远程连接本地数据库(docker)

1. 安装docker 参考上一篇文章 CentOS安装Docker 2. Linux中安装Mysql 2.1 docker拉取mysql镜像 拉取镜像 docker pull mysql查看镜像列表 docker images2.2 运行mysql容器 运行一个名字为mysql的mysql容器&#xff0c;其连接端口号为3306&#xff0c;密码为123456 docker r…

H266开源视频编码器VVENC现状

VVenC 是由 Fraunhofer HHI 研究团队开发的&#xff0c;主要是视频编码系统组。HHI 是欧洲最大的研究组织 Fraunhofer 协会的成员&#xff0c;该协会是德国的一个大型非营利性组织。源代码在&#xff1a; https://github.com/fraunhoferhhi/vvenc VVenC几乎与H.266视频标准同时…

React18 后台管理模板项目:现代、高效与灵活

&#x1f389; 给大家推荐一款React18TypescriptVitezustandAntdunocss且超级好用的中后台管理框架 项目地址 码云&#xff1a;https://gitee.com/nideweixiaonuannuande/xt-admin-react18github&#xff1a;https://github.com/1245488569/xt-admin-react18 演示地址 http…

AI人工智能培训讲师ChatGPT讲师叶梓培训简历及提纲ChatGPT等AI技术在医疗领域的应用

叶梓&#xff0c;上海交通大学计算机专业博士毕业&#xff0c;高级工程师。主研方向&#xff1a;数据挖掘、机器学习、人工智能。历任国内知名上市IT企业的AI技术总监、资深技术专家&#xff0c;市级行业大数据平台技术负责人。 长期负责城市信息化智能平台的建设工作&#xff…

在react中使用tailwindcss

安装tailwind css npm i -D tailwindcssnpm:tailwindcss/postcss7-compat postcss^7 autoprefixer^9安装 CRACO 由于 Create React App 不能让您覆盖原生的 PostCSS 配置&#xff0c;所以我们还需要安装 CRACO 才能配置 Tailwind。 npm install craco/craco配置CRACO 在项目根…

uni app 打肉肉(打飞机)小游戏

都给老婆和孩子写了 合十 钓鱼了&#xff0c;给自己写个打飞机吧。没找飞机怪兽的图片。就用馒头和肉肉代替了。有问题不要私信我。自己改哈 <template><view class"page_main"><view class"contentone"><canvas class"canvas…

吴恩达机器学习笔记 二十一 迁移学习 预训练

迁移学习&#xff08;transfer learning&#xff09;&#xff1a;直接把神经网络拿来&#xff0c;前面的参数可以直接用&#xff0c;把最后一层改了。 两种训练参数的方式&#xff1a; 1.只训练输出层的参数 2.训练所有参数 当只有一个小数据集的时候&#xff0c;第一种方法…

uniapp小程序:使用uni.getLocation通过腾讯地图获取相关地址信息详情(超详细)

先看运行结果&#xff1a; 流程&#xff1a; 1、在edge网页搜索腾讯位置服务 搜索后点击这里 已经有账号的就进行登录&#xff0c;没有账号的进行注册即可 点击控制台&#xff1a; 进去后点击成员管理---->我的应用---->创建应用 输入相应的参数应用名称&#xff08;随便…

Docker:常用命令

文章目录 docker作用常用指令 docker 作用 Docker 是一种容器化平台&#xff0c;可以让开发者打包应用程序及其依赖项&#xff0c;并以容器的形式进行发布、交付和运行。 Docker 的一些主要作用&#xff1a; 应用程序隔离&#xff1a;Docker 使用容器技术&#xff0c;将应用程…

NCP1271D65R2G中文资料规格书PDF数据手册引脚图参数图片价格功能特性描述

产品描述&#xff1a; NCP1271 是成功的 7 引脚电流模式 NCP12XX 系列的新一代引脚-引脚兼容新产品。该控制器通过使用可调节 Soft Skip 模式和集成的高电压启动 FET&#xff0c;实现了卓越的待机功耗。此专属 Soft Skip 还大大降低了噪音的风险。 因此可以在箝位网络中使用不…

音频提取:分享几个常用方法,简单好用

有时候我们会在视频中发现一首非常好听的歌曲&#xff0c;但是我们并不需要视频本身。 这时&#xff0c;我们可以提取视频中的音频&#xff0c;将其转化为音频文件&#xff0c;然后在任何时间、任何地点进行欣赏。 下面给大家分享几个提取视频中音频的几个方法&#xff0c;供…

vue/uniapp路由history模式下宝塔空间链接打开新窗口显示404解决方法

vue/uniapp路由history模式下宝塔空间链接打开新窗口显示404&#xff0c;或者域名后带路径参数刷新就报404 解决方法&#xff1a; 宝塔中站点配置修改&#xff1a;【配置文件】中添加下面代码&#xff0c;具体如图&#xff1a; location / {try_files $uri $uri/ /index.html…

【Go语言】Go语言中的函数

Go语言中的函数 Go语言中&#xff0c;函数主要有三种类型&#xff1a; 普通函数 匿名函数&#xff08;闭包&#xff09; 类方法 1 函数定义 Go语言函数的基本组成包括&#xff1a;关键字func、函数名、参数列表、返回值、函数体和返回语句。Go语言是强类型语言&#xff0…

【C#】数组string类型输出

示例 代码 internal class Program{static void Main(string[] args){List<int> list new List<int>() { 1,2,3,4,5,6,7,8,9,10};string output1 string.Join(",", list);Console.WriteLine(output1);string output2 string.Join("\n", lis…

深度学习指标| 置信区间、Dice、IOU、MIOU、Kappa

深度学习部分指标介绍 置信区间混淆矩阵DiceIOU和MIOUKappa 置信区间 95%CI指标 读论文的时候&#xff0c;常会看到一个“95%CI”的评价指标。 其中CI指的是统计学中的置信区间&#xff08;Confidence interval&#xff0c;CI&#xff09;。在统计学中&#xff0c;一个概率样…

【Streamlit学习笔记】实现包含多个sheet的excel文件下载

1、什么是Streamlit Streamlit是一个免费的开源框架&#xff0c;用于快速构建和共享漂亮的机器学习和数据科学Web应用程序&#xff0c;官网链接 Streamlit Streamlit API链接 API reference 实际项目中遇到的问题&#xff1a;包含多个sheet的excel文件下载&#xff0c;下面将给…

小程序路由跳转---事件通信通道EventChannel(二)

事件通信通道EventChannel实现两个页面之间的数据传输已在上篇小程序路由跳转—事件通信通道EventChannel&#xff08;一&#xff09;展开叙述&#xff0c;接下来讨论下多个页面&#xff08;三个及以上&#xff09;数据的通道如何构建。 本文重点&#xff1a;三个以上页面需将…

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

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

openGauss使用BenchmarkSQL进行性能测试(下)

上一篇我们分享了测试方法&#xff0c;本篇我们将发起测试及测试结果。 背景 本文提供openGauss使用BenchmarkSQL进行性能测试的方法和测试数据报告。 BenchmarkSQL&#xff0c;一个JDBC基准测试工具&#xff0c;内嵌了TPC-C测试脚本&#xff0c;支持很多数据库&#xff0c;…