zookeeper监控告警

一、ZooKeeper简介

ZooKeeper作为分布式系统中重要的组件,目前在业界使用越来越广泛,ZooKeeper的使用场景非常多,以下是几种典型的应用场景:

l  数据发布与订阅(配置中心)

l  负载均衡

l  命名服务(Naming Service)

l  分布式通知/协调

l  集群管理与Master选举

l  分布式锁

zk环境搭建

这里不详细说明,提供详细blog说明。

Zookeeper集群搭建:http://www.cnblogs.com/linuxbug/p/4840137.html

Zookeeper配置文件详解:http://www.cnblogs.com/linuxbug/p/4840136.html

Zookeeper常用四字命令:http://www.cnblogs.com/linuxbug/p/4840135.html

二、ZooKeeper监控

在部门内部,有不少应用已经强依赖ZooKeeperZooKeeper的工作状态直接影响它们的正常工作。先来看一看哪些因素对ZooKeeper正常工作有比较大的影响:

 

影响ZooKeeper工作的主要因素

l  用于zookeeper写事务日志的目录要有足够大小,并且强烈建议在单独的磁盘(挂载点)上,这是影响ZK性能最大因素之一。

l  连接数。

l  注册的Watcher数。

l  ZNode是否可读,可写。

l  ZK事件通知的延时是否过大。

 

针对监控平台的以上几点要求,部内内部选用了目前使用业界已经比较成熟的阿里开源ZooKeeper监控框架TaoKeeper

TaoKeeper源码及搭建方法参考https://github.com/alibaba/taokeeper

 

TaoKeeper介绍

TaoKeeper是阿里开源ZooKeeper监控告警框架,提供以下功能:

l  CPU/MEM/LOAD的监控

l  ZK日志目录所在磁盘剩余空间监控

l  单机连接数的峰值报警

l  单机 Watcher的峰值报警

l  节点自检:是指对集群中每个IP所在ZK节点上的PATH: /YINSHI.MONITOR.ALIVE.CHECK 定期进行三次如下流程 : 节点连接 - 数据发布 - 修改通知 - 获取数据 - 数据对比, 在指定的延时内,三次流程均成功视为该节点处于正常状态。

 

工作原理

Taokeeper通过SSH连接到ZooKeeper部署的机器上,再在上面执行ZooKeeper的四字命令来得到统计信息,再分析保存到mysql数据库中。
监控目标机器的负载,也是通过SSH连接到目标机器,再执行top
等命令,再分析得到数据。

常见四字命令:

l  echo stat|nc 127.0.0.1 2181 来查看哪个节点被选择作为follower或者leader

l  echo ruok|nc 127.0.0.1 2181 测试是否启动了该Server,若回复imok表示已经启动。

l  echo cons | nc 127.0.0.1 2181 列出所有连接到服务器的客户端的完全的连接/会话的详情。

l  echo wchs | nc 127.0.0.1 2181 列出服务器 watch 的详细信息。

 

注意事项

1 taokeeper通过ssh信道到访登录每台机器,需要打开sshpassword登陆方式,不然taokeeper运行时会出现authentication failed错误。打开方式如下:

l  对于contos机器(sshd版本为标准OpenSSL):需要把sshd配置文件中(本机为/etc/ssh/sshd_config.l)PasswordAuthentication变量设置成yes

l  对于suse机器(sshd版本为SSH Secure Shell):需要把sshd配置文件中(本机为/etc/ssh2/sshd2_config.l)AllowedAuthentications变量加上passwordAllowedAuthentications publickey,keyboard-interactive,password);

2 监控的每台机器需要安装nc命令(suse中叫netcat,可以直接做个软链到nc

 

使用TaoKeeper,目前已建立起部门内ZooKeeper的监控视图

ZooKeeper集群实时状态

clip_image002

点击查看按钮可以查看具体信息

Watch

clip_image004

 

连接数

clip_image006

 

集群状态趋势图

clip_image008

 

新增监控集群

clip_image010

三、ZooKeeper告警

TaoKeeper查看主要针对以下几个维度:

l  ZooKeeper宕机告警

l  单机连接数超过阀值告警

l  单机Watch数超过阀值告警

l  磁盘,CPU,内存超过阀值告警

 

或自己使用四字命令+nc写脚本去做告警也行,这里不再详述。

 

转载于:https://www.cnblogs.com/linuxbug/p/4840506.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
大数据开发工程师需要具备高可用性的知识是非常重要的。以下是一些与高可用相关的知识点: 1. 数据冗余与备份:了解数据冗余的概念,通过数据备份和复制来保证数据的可靠性和高可用性。熟悉常用的数据备份策略和技术,如RAID、分布式文件系统等。 2. 容错与故障转移:了解容错和故障转移的机制和技术,如故障转移集群、冗余节点、负载均衡等。熟悉常见的容错与故障转移方案,如Hadoop的NameNode故障转移、Zookeeper的分布式协调服务等。 3. 高可用架构设计:熟悉设计高可用架构的原则和方法,如去中心化、分布式架构、多活架构等。了解常见的高可用架构模式,如主从复制、主备模式、集群模式等。 4. 监控告警:了解监控告警系统的原理和实现方式,如使用监控指标来判断系统状态、配置告警规则来及时发现异常等。熟悉常见的监控工具和框架,如Nagios、Zabbix、Prometheus等。 5. 自动化运维:掌握自动化运维的技术和工具,如自动化部署、自动化测试、自动化运维工具等。了解常用的自动化运维框架,如Ansible、SaltStack、Docker等。 6. 容量规划与扩展:了解容量规划和扩展的方法和技术,通过监控和性能评估来预测系统的负载和资源需求。熟悉常见的扩展方式,如水平扩展、垂直扩展、分布式扩展等。 7. 故障排除与性能优化:具备故障排除和性能优化的能力,能够快速定位和解决系统故障和性能问题。熟悉常见的故障排除和性能优化工具和方法,如日志分析工具、性能
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值