zookeeper命令使用及监控

本文只讲解zookeeper的四字命令及客户端连接服务端的zkCli.sh命令的使用及zookeeper的监控,如果需要安装请参考zookeeper安装及简介

1. 客户端获取zookeeper服务性能及详细信息的四字命令

用户在客户端可以通过 telnet 或 nc 向 ZooKeeper 提交相应的命令。 ZooKeeper 常用四字命令如下表:
ZooKeeper 四字命令 功能描述
conf 输出相关服务配置的详细信息。
cons 列出所有连接到服务器的客户端的完全的连接 / 会话的详细信息。包括“接受 / 发送”的包数量、会话 id 、操作延迟、最后的操作执行等等信息。
dump 列出未经处理的会话和临时节点。
envi 输出关于服务环境的详细信息(区别于 conf 命令)。
reqs 列出未经处理的请求
ruok 测试服务是否处于正确状态。如果确实如此,那么服务返回“imok ”,否则不做任何相应。
stat 输出关于性能和连接的客户端的列表。

wchs 列出服务器 watch 的详细信息。
wchc 通过 session 列出服务器 watch 的详细信息,它的输出是一个与watch 相关的会话的列表。
wchp 通过路径列出服务器 watch 的详细信息。它输出一个与 session相关的路径。
下图是我们的实际案例

2. zkCli.sh 客户端连接服务端命令操作

一般情况下zookeeper提供了三种方式:java/C客户端及zookeeper api进行交互,当然还有命令行的操作方式直接与zookeeper服务进行交互。这里只讲解命令行方式。
直接上操作图解
zkCli.sh IP 2181

3. 监控

由于网络上提供的监控工具有各种安全问题,这里不建议使用网络上的监控软件,这里自己写脚本,使用zabbix进行监控或者直接使用jmx进行监控。这里只讲zabbix监控。
zabbix监控zookeeper通过shell脚本获取各个监控项的值,从而通过zabbix-agent发送给server。
脚本如下:
一共俩脚本
zabbix_zookeeper1.sh
#!/bin/bash
echo mntr|nc 172.16.80.202 2181|grep "$1" |awk ‘{print $2}‘
zabbix_zookeeper1.sh
#!/bin/bash
echo srvr|nc 127.0.0.1 2181 | grep "$1" |awk ‘{print $2}‘
在zabbix-agent的配置文件中配置
[[email protected] zabbix_agentd.d]# cat userparameter_zookeeper.conf
UserParameter=zookeeper1[],/bin/sh /data/scripts/zabbix_zookeeper1.sh $1
UserParameter=zookeeper1[
],/bin/sh /data/scripts/zabbix_zookeeper2.sh $1
最后在zabbix中添加主机同时添加监控项即可。
我们知道前面可以使用命令获取zookeeper服务的各种信息,这样我们就可以直接写脚本获取信息。
我们要获取zookeeper的哪些监控项的值呢?
网上给出了监控项:
系统监控 这个监控linux系统以及修改linux服务器参数即可
内存使用量 ZooKeeper应当完全运行在内存中,不能使用到SWAP。Java Heap大小不能超过可用内存。
Swap使用量 使用Swap会降低ZooKeeper的性能,设置vm.swappiness = 0
网络带宽占用 如果发现ZooKeeper性能降低关注下网络带宽占用情况和丢包情况,通常情况下ZooKeeper是20%写入80%读入
磁盘使用量 ZooKeeper数据目录使用情况需要注意
磁盘I/O ZooKeeper的磁盘写入是异步的,所以不会存在很大的I/O请求,如果ZooKeeper和其他I/O密集型服务公用应该关注下磁盘I/O情况

zk_avg/min/max_latency 响应一个客户端请求的时间,建议这个时间大于10个Tick就报警
zk_outstanding_requests 排队请求的数量,当ZooKeeper超过了它的处理能力时,这个值会增大,建议设置报警阀值为10
zk_packets_received 接收到客户端请求的包数量
zk_packets_sent 发送给客户端的包数量,主要是响应和通知
zk_max_file_descriptor_count 最大允许打开的文件数,由ulimit控制
zk_open_file_descriptor_count 打开文件数量,当这个值大于允许值得85%时报警
Mode 运行的角色,如果没有加入集群就是standalone,加入集群式follower或者leader
zk_followers leader角色才会有这个输出,集合中follower的个数。正常的值应该是集合成员的数量减1
zk_pending_syncs leader角色才会有这个输出,pending syncs的数量
zk_znode_count znodes的数量
zk_watch_count watches的数量
Java Heap Size ZooKeeper Java进程的

原文地址:http://blog.51cto.com/laodou/2160870

时间: 2024-11-10 15:12:22

zookeeper命令使用及监控的相关文章

20个命令行工具监控 Linux 系统性能(转载)

1. top — Linux 系统进程监控 top 命令是性能监控程序,它可以在很多 Linux/Unix 版本下使用,并且它也是 Linux 系统管理员经常使用的监控系统性能的工具.Top 命令可以定期显示所有正在运行和实际运行并且更新到列表中,它显示出 CPU 的使用.内存的使用.交换内存.缓存大小.缓冲区大小.过程控制.用户和更多命令.它也会显示内存和 CPU 使用率过高的正在运行的进程.当我们对 Linux 系统需要去监控和采取正确的行动时,top 命令对于系统管理员是非常有用的.让我们

20个命令行工具监控 Linux 系统性能【转载】

对于每个系统管理员或网络管理员来说,每天要监控和调试 Linux 系统性能问题都是非常困难的工作.我已经有5年 Linux 管理员的工作经历,知道如何监控系统使其保持正常运行.为此,我们编写了对于 Linux/Unix 系统管理员非常有用的并且最常用的20个命令行系统监视工具.这些命令可以在所有版本的 Linux 下使用去监控和查找系统性能的实际原因.这些监控命令足够你选择适合你的监控场景. 1. top -Linux系统进程监控 top 命令是性能监控程序,它可以在很多 Linux/Unix

ZooKeeper系列3:ZooKeeper命令、命令行工具及简单操作

问题导读1.ZooKeeper包含哪些常用命令?2.通过什么命令可以列出服务器 watch 的详细信息?3.ZooKeeper包含哪些操作?4.ZooKeeper如何创建zookeeper? 常用命令 ZooKeeper 支持某些特定的四字命令字母与其的交互.它们大多是查询命令,用来获取 ZooKeeper 服务的当前状态及相关信息.用户在客户端可以通过 telnet 或 nc 向 ZooKeeper 提交相应的命令. ZooKeeper 常用四字命令见下表 1 所示: 表 1 : ZooKee

ZooKeeper学习第三期---Zookeeper命令操作

转:http://www.cnblogs.com/sunddenly/p/4031881.html 一.Zookeeper的四字命令 Zookeeper支持某些特定的四字命令字母与其的交互.他们大多数是查询命令,用来获取Zookeeper服务的当前状态及相关信息.用户在客户端可以通过telnet或nc向Zookeeper提交相应的命令.Zookeeper常用的四字命令见下图所示. 上图,是Zookeeper四字命令的一个简单用例. [[email protected] ~]# echo ruok

Zookeeper Monitor集群监控开发

随着线上越来越多的系统依赖Zookeeper集群,以至于Zookeeper集群的运行状况越来越重要.但是目前还没有什么好用的Zookeeper集群监控系统(淘宝开源了一个Zookeeper监控系统,但是我觉得很不好用,里面主要有四个线程在跑,而且需要SSH登录到线上集群,这用起来很不方便.)于是我们开发了一套Zookeeper集群监控程序,可以监控Zookeeper集群. 从官方文档我们可以了解到,监控Zookeeper集群可以用两种方法: The ZooKeeper service can b

分布式服务协调员zookeeper - 应用场景和监控

zookeeper在分布式系统中作为协调员的角色,可应用于Leader选举.分布式锁.配置管理等服务的实现.以下我们从zookeeper提供的API.应用场景和监控三方面学习和了解zookeeper(以下简称ZK). ZK API ZK以Unix文件系统树结构的形式管理存储的数据,图示如下: 其中每个树节点被称为znode,每个znode类似一个文件,包含文件元信息(meta data)和数据. 以下我们用server表示ZK服务的提供方,client表示ZK服务的使用方,当client连接ZK

通过redis命令实现性能监控

Redis介绍 Redis是一种高级key-value数据库.它跟memcached类似,不过数据可以持久化,而且支持的数据类型很丰富.有字符串,链表.哈希.集合和有序集合5种.支持在服务器端计算集合的并.交和补集(difference)等,还支持多种排序功能.所以Redis也可以被看成是一个数据结构服务器.Redis的所有数据都是保存在内存中,然后不定期的通过异步方式保存到磁盘上(这称为"半持久化模式"):也可以把每一次数据变化都写入到一个append only file(aof)里

Linux命令(26):top命令-cpu实时监控

top命令 功能说明 top命令提供了对系统处理器状态的实时监控,它能够实时显示系统中各个进程的资源占用情况.用法如下:   top [选项]  常用参数 选项 含义 a 显示所有用户的进程,包含每个程序的完整路径 -x 显示所有系统程序,包括哪此没有终端的程序 -u 显示使用都的名称和起始时间 -f 详细显示程序执行的路径群 -c 只显示进程的名称,不显示进程的完整路径 -e 将除内核进程以外所有进程的信息写到标准输出(等同于-A) 常用组合: ps -ef          #显示所有进程信

ngxtop:在命令行实时监控 Nginx 的神器

Nginx网站服务器在生产环境中运行的时候需要进行实时监控.实际上,诸如Nagios, Zabbix, Munin 的网络监控软件是支持 Nginx 监控的. 如果你不需要以上软件提供的综合性报告或者长期数据统计功能,只是需要一种快速简便的办法去监控 Nginx 服务器的请求的话,我建议你采用一个叫 ngxtop 的命令行工具. 你马上就会发现 ngxtop 从界面和名称都借鉴了著名的top命令.ngxtop 是通过分析 Nginx 或者其他的日志文件,使用类似 top 命令的界面实时展示出来的