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.mzph.cn/news/745812.shtml

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

相关文章

vue2之过滤器

过滤器 过滤器的实现类似Django的过滤器。 代码 <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"><title>过…

Redis的过期键是如何处理的?过期键的删除策略有哪些?请解释Redis的内存淘汰策略是什么?有哪些可选的淘汰策略?

Redis的过期键是如何处理的&#xff1f;过期键的删除策略有哪些&#xff1f; Redis的过期键处理是一个重要的内存管理机制&#xff0c;它确保在键过期后能够释放相应的内存空间。Redis对过期键的处理主要依赖于其删除策略&#xff0c;这些策略包括被动删除&#xff08;惰性删除…

Mysql---库表操作

文章目录 前言一、pandas是什么&#xff1f;二、使用步骤 1.引入库2.读入数据总结 一.Mysql数据库简介 MySQL是一种关系型数据库管理系统&#xff0c;是最流行的开源数据库之一。它是由瑞典MySQL AB公司开发的&#xff0c;后来被Sun Microsystems收购&#xff0c;之后又被Oracl…

企业架构设计方法与实践中的架构治理演进、架构评估方法、架构成熟度模型

企业架构设计方法与实践中的架构治理演进、架构评估方法、架构成熟度模型。 架构治理演进: 架构治理是指通过设立和执行一套政策和程序,来管理和控制一个组织的架构活动。架构治理演进是一个持续的过程,需要根据组织的实际情况进行定期审查和调整。 在演进过程中,重点需要…

1 redis7概述

Redis7 1 Redis简介 Redis之所以称之为字典服务&#xff0c; 是因为 Redis 是一个 key-value存储系统。 支持存储的 value类型很多&#xff0c; 包括 String(字符串)、List(链表)、Set(集合)、Zset(sorted set --有序集合)和 Hash&#xff08;哈希类型&#xff09;等。 Redis…

[java基础揉碎]多态数组

介绍: 多态数组就是有一个父类数组, 数组含有不同多个父类子类对象 解析: 新建一个person类, 有名字,年龄属性, 同时有个say方法 新建一个子类, 有一个成绩的属性,并重写了say方法, 加上了成绩 新建一个子类老师, 并有工资这个属性, 一样重写了say方法加上了这个属性 要求创…

efcore事务

在 Entity Framework Core (EF Core) 中&#xff0c;事务用于确保一系列数据库操作要么全部成功&#xff0c;要么全部失败&#xff0c;这对于保持数据的一致性非常重要。以下是使用 EF Core 实现事务的一个简单示例&#xff1a; 首先&#xff0c;请确保安装了 EF Core。如果你…

PyTorch学习笔记之基础函数篇(八)

6 线性代数运算 6.1 torch.mm()函数 torch.mm() 是 PyTorch 中的一个函数&#xff0c;用于执行矩阵乘法操作。这个函数会接受两个张量作为输入&#xff0c;并返回它们的矩阵乘积。 函数的基本语法如下&#xff1a; torch.mm(mat1, mat2) → Tensor参数说明&#xff1a; ma…

根据服务器系统选择对应的MySQL版本

1. 根据服务器系统选择对应的MySQL版本 MySQL有多个版本&#xff0c;选择对应的版本&#xff0c;重点信息是Linux的GLIBC版本号&#xff0c;Linux的版本、系统位数。 1.1 查看Linux的GLIBC版本号 通常libc.so会支持多个版本&#xff0c;即向前兼容&#xff0c;查看该文件中…

Linux lsattr命令教程:如何查看和理解文件属性(附实例详解和注意事项)

Linux lsattr命令介绍 lsattr命令是list attributes的缩写&#xff0c;主要用于列出Linux系统文件的属性。这个命令可以帮助我们了解文件的各种属性&#xff0c;比如是否可以被修改、删除等。 Linux lsattr命令适用的Linux版本 lsattr命令在大多数Linux发行版中都可以使用&a…

LLM预备知识、工具篇——LLM+LangChain+web UI的架构解析

目录 【常见名词】一、LLM的低资源模型微调二、向量数据库1、Milvus(v2.1.4)&#xff1a;云原生自托管向量数据库&#xff08;Ubuntu下&#xff09;1&#xff09;安装&#xff08;Docker Compose方式&#xff09;&#xff1a;2&#xff09;管理工具&#xff08;仅支持Milvus 2.…

RabbitMQ命令行监控命令详解

在分布式系统中&#xff0c;消息队列中间件如RabbitMQ扮演着至关重要的角色。为了保证系统的稳定性和高可用性&#xff0c;对RabbitMQ进行有效监控是必不可少的。本文将详细介绍RabbitMQ提供的命令行工具rabbitmqctl&#xff0c;这些工具可以帮助我们监控和管理RabbitMQ服务器。…

adb 筛选查看Unity日志

在Windows系统中&#xff0c;使用ADB&#xff08;Android Debug Bridge&#xff09;查看Unity应用的日志是一个常见的需求&#xff0c;尤其是在开发或调试Android平台上的Unity游戏或应用时。以下是一些基本步骤和命令&#xff0c;帮助你通过ADB获取Unity日志。 在Linux或Mac …

rank() over, dense_rank() over, row_number() over的区别

rank() over, dense_rank() over, row_number() over的区别 --ROW_NUMBER() OVER 不需要考虑并列&#xff0c;即使查询出来的数值相同也会进行连续排名 SELECT NAME, STUNO, SUBJECT, SCORE, ROW_NUMBER() OVER(PARTITION BY SUBJECT ORDER BY SCORE DESC) TO_RANK FROM SCOTT…

Python分类汇总N张Excel表中的数据(附源码下载)

在现代办公环境中&#xff0c;处理大量的Excel表格是一项常见而又繁琐的任务。Python作为一种功能强大的编程语言&#xff0c;其在自动化办公方面的表现尤为出色。例如&#xff0c;我们可以使用Python进行Excel表格的分类汇总操作。 具体来说&#xff0c;我们可以创建一个名为“…

Learn OpenGL 03 着色器

GLSL 着色器的开头总是要声明版本&#xff0c;接着是输入和输出变量、uniform和main函数。每个着色器的入口点都是main函数&#xff0c;在这个函数中我们处理所有的输入变量&#xff0c;并将结果输出到输出变量中。 一个典型的着色器有下面的结构&#xff1a; #version vers…

O2OA(翱途)开发平台系统安全-用户登录IP限制

O2OA(翱途)开发平台[下称O2OA开发平台或者O2OA]支持对指定的用户设置可以连接的客户端计算机的IP地址&#xff0c;以避免用户在不安全的环境下访问系统。本篇主要介绍如何开启O2OA用户登录IP限制。 一、先决条件&#xff1a; 1、O2Server服务器正常运行&#xff0c;系统安装部…

PostgreSQL开发与实战(6.3)体系结构3

作者&#xff1a;太阳 四、物理结构 4.1 软件安装目录 bin //二进制可执行文件 include //头文件目录 lib //动态库文件 share //文档以及配置模版文件4.2 数据目录 4.2.1 参数文件 pg_hba.conf //认证配置文件 p…

C++ string详解+模拟实现

文章目录 写在前面1. string类的使用1.1 string类的构造1.2 string类的迭代器1.3 string类对象的容量操作1.4 string类对象的修改操作1.5 string类对象的非成员函数 2. string类的模拟实现2.1 模拟实现string类的默认成员函数2.2 模拟实现string类的迭代器2.3 模拟实现string类…

dpdk-19.11 对向量指令的使用情况分析

不同向量指令识别关键字 __m128i sse uint64x2_t neon __m256i avx2 __m512i avx512 vector altivec dpdk 向量收发包函数 支持 arm neno 向量收发包函数的 pmd 驱动 bnxt hns3 i40e ixgbe mlx5 virtio 支持 sse 向量收发包函数的 pmd 驱动 axgbe hinic fm10k bnxt i40e …