首先最简单的是监听服务端口,在zabbix界面直接添加监控项
item:
zookeeper.status
key:
net.tcp.listen[2181]
 
ZooKeeper监控要点:
 

内存使用量    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进程的
 
在服务器端我们可以通过命令查看这些项目:
 
[root@localhost ~]# echo ruok|nc 127.0.0.1 2181       (ruok意思是are you ok?)
imok
 
[root@localhost ~]# echo mntr|nc 127.0.0.1 2181
zk_version    3.4.6-1569965, built on 02/20/2014 09:09 GMT
zk_avg_latency    0
zk_max_latency    1364
zk_min_latency    0
zk_packets_received    184218311
zk_packets_sent    184995960
zk_num_alive_connections    33
zk_outstanding_requests    0
zk_server_state    leader
zk_znode_count    821128
zk_watch_count    2346
zk_ephemerals_count    47
zk_approximate_data_size    62155934
zk_open_file_descriptor_count    62
zk_max_file_descriptor_count    4096
zk_followers    2
zk_synced_followers    2
zk_pending_syncs    0
 
[root@localhost ~]# echo srvr|nc 127.0.0.1 2181
Zookeeper version: 3.4.6-1569965, built on 02/20/2014 09:09 GMT
Latency min/avg/max: 0/0/1364
Received: 184218603
Sent: 184996253
Connections: 33
Outstanding: 0
Zxid: 0x40d1a259a
Mode: leader
Node count: 821136
 
接下来就是写一个监控脚本来输出这些参数的具体情况:
cd /usr/local/zabbxi/share/script/
vi zookeeper_check1.sh
 
#!/bin/bash
echo mntr | nc 127.0.0.1 2181 | grep "$1" |awk '{print $2}'
 
vi zookeeper_check2.sh
 
#!/bin/bash
echo srvr|nc 127.0.0.1 2181 | grep "$1" |awk '{print $2}'
 
zabbix-agentd.comf里面加入key:
vi /usr/local/zabbix/etc/zabbix_agentd.conf
 
UserParameter=zookeeper1[*],/bin/sh /usr/local/zabbix/share/script/zookeeper_check1.sh $1
UserParameter=zookeeper2[*],/bin/sh /usr/local/zabbix/share/script/zookeeper_check2.sh $1
 
重启zabbix客户端
 
然后在zabbix界面添加监控项
 
------------------------------------------------------------------------------------------------
ztwl配置实例:
 
#!/bin/bash
zk=`echo ruok|nc 127.0.0.1 `
if [[ "$zk" == "imok" ]] ; then
echo
else
echo
fi

UserParameter=zookeeper.status,/bin/sh /etc/zabbix/zookeeper_check.sh

 
 

Zabbix监控Zookeeper健康状况的更多相关文章

  1. 使用Zabbix监控ZooKeeper服务的健康状态

    一 应用场景描述 在目前公司的业务中,没有太多使用ZooKeeper作为协同服务的场景.但是我们将使用Codis作为Redis的集群部署方案,Codis依赖ZooKeeper来存储配置信息.所以做好Z ...

  2. zabbix 监控zookeeper

    1.监控脚本如下:check_zookeeper.sh 1 2 #!/bin/bash echo mntr | nc 127.0.0.1 2182 | grep "$1" |awk ...

  3. zabbix监控zookeeper

    在github找到一个不错的模板,直接导入使用.下载地址: https://github.com/zhujinhe/zookeeper-zabbix-template 监控项监控类型为外部检查 zab ...

  4. 通过python脚本和zabbix配合监控zookeeper的节点数

    通过python脚本和zabbix配合监控zookeeper的节点数 需求描述: 在日常zabbix监控zookeeper的时候,无法通过shell来获取zookeeper的具体节点信息,没有开放具体 ...

  5. 使用Zabbix监控Oracle数据库

    Orabbix介绍 监控Oracle数据库我们需要安装第三方提供的Zabbix插件,我们先测试比较有名的Orabbix,http://www.smartmarmot.com/product/orabb ...

  6. Zabbix监控nginx-rtmp status(json版)

    与前面的文章 zabbix监控nginx-rtmp status(html版)区别只在于取值的页面不一样 http://127.0.0.1:81/control/get/all_streams sta ...

  7. Zabbix监控mysql performance

    介绍 zabbix监控mysql性能,使用zabbix自带的mysql监控模板,可以监控以下内容OPS(增删改查).mysql慢查询数量.mysql请求\响应流量带宽 配置 新建mysql监控用户 G ...

  8. zabbix监控Java 8080端口

    linux下端口和服务是对应的,Java进程启动时默认监听8080端口,如果服务挂掉则8080端口就没有了. lsof -i:8080 端口,如果没有任何的输出,说明该端口不在工作. 想在zabbix ...

  9. zabbix监控报错zabbix server is not running解决方法

    问题描述: 布置好zabbix监控,正常运行.但是重启了虚拟机服务器之后,页面出现如下的报错,而且设置的报信息也是失效的:

随机推荐

  1. [UE4]射击起点、终点的计算方法

    一.射击起点,这个简单,一般是以角色的相机位置为作为射击起点,而不是枪口的位置作为起点 二.射击终点,角色朝向 * 射击距离 + 射击起点 角色朝向:单位向量 角色朝向 * 射击距离:向量长度 向量长 ...

  2. KPPW2.5 漏洞利用--SQL注入

    KPPW2.5 漏洞利用--SQL注入 SQL注入--布尔型盲注 环境搭建 1,集成环境简单方便,如wamp,phpstudy.... 2,KPPW v2.2源码一份(文末有分享)放到WWW目录下面 ...

  3. UE4里的自定义深度功能

    转自:http://www.52vr.com/article-1866-1.html 随着物理渲染系统的发布,虚幻引擎4同时引进了一个新的深度缓存功能,它叫作“自定义深度”,可以用于诸如编辑器里的选择 ...

  4. [TFS]TFS强制删除离职人员签出锁定项的方法

    步骤: 1.连接到TFS数据库服务器的tfsversioncontrol库: 2.查tbl_workspace表,找出那哥们的工作目录, 如select * from tbl_workspace wh ...

  5. 第1课 类型推导(1)_auto关键字

    1.  auto关键字 (1)auto的作用是让编译器自动推断变量的类型,而不需要显式指定类型.这种隐式类型的推导发生在编译期. (2)auto并不能代表实际的类型声明,只是一个类型声明的“占位符” ...

  6. 第1章 计算机网络和协议(3)_TCP/IP协议

    3. TCP/IP协议 3.1 TCP/IP协议分层 3.2 TCP/IP通信过程 (1)应用层:浏览器和Web服务器是两个对等的实现,它们之间使用http协议进行通信. (2)传输层:网页传输之前, ...

  7. CNN卷积层基础:特征提取+卷积核+反向传播

    本篇介绍卷积层的线性部分 一.与全连接层相比卷积层有什么优势? 卷积层可以节省参数,因为卷积运算利用了图像的局部相关性——分析出一小片区域的特点,加上Pooling层(汇集.汇聚),从附近的卷积结果中 ...

  8. 解决最近vs2017总是在加载工程的时候卡住不不动

    就像这样 解决方法 删除工程目录下的.vs目录

  9. jQuery选择器详解

    根据所获取页面中元素的不同.可以将jQuery选择器分为:四大类,其中过滤选择器在分为六小类 jQuery选择器 基本选择器   层次选择器   过滤选择器 简单过滤选择器 内容过滤选择器 可见性过滤 ...

  10. solr 忽略大小写

    1.types标签下加入如下fieldType <fieldType name="str_lower" class="solr.TextField" so ...