专栏首页三丰SanFengzookeeper监控告警

zookeeper监控告警

一、ZooKeeper简介

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

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

l 负载均衡

l 命名服务(Naming Service)

l 分布式通知/协调

l 集群管理与Master选举

l 分布式锁

zk环境搭建

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

Zookeeper集群搭建:https://cloud.tencent.com/developer/article/1021111

Zookeeper配置文件详解:https://cloud.tencent.com/developer/article/1021117

Zookeeper常用四字命令:https://cloud.tencent.com/developer/article/1021119

二、ZooKeeper监控

在部门内部,有不少应用已经强依赖ZooKeeper,ZooKeeper的工作状态直接影响它们的正常工作。先来看一看哪些因素对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信道到访登录每台机器,需要打开ssh的password登陆方式,不然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变量加上password(AllowedAuthentications publickey,keyboard-interactive,password);

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

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

ZooKeeper集群实时状态

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

Watch数

连接数

集群状态趋势图

新增监控集群

三、ZooKeeper告警

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

l ZooKeeper宕机告警

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

l 单机Watch数超过阀值告警

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

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

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • zookeeper配置详解

    Screenshot (38).png Screenshot (39).png Screenshot (40).png Screenshot (41).pn...

    三丰SanFeng
  • history命令使用方法详解

    history是一条非常实用的shell命令,可以显示出之前在shell中运行的命令,配合last显示之前登录的用户,就可以追溯是哪个用户执行了某些命令。以下详...

    三丰SanFeng
  • Linux进程间通信(三) - 信号

    什么是信号 软中断信号(signal,又简称为信号)用来通知进程发生了异步事件。在软件层次上是对中断机制的一种模拟,在原理上,一个进程收到一个信号与处理器收到一...

    三丰SanFeng
  • ZooKeeper系列教学

        本专题是ZooKeeper的一些列教学文章,本来博主打算自己写,但是写了两篇之后,查资料过程中发现了Sunddenly(⊙_⊙) 的博客,他的这个系列写...

    IT云清
  • 简要分析ZooKeeper基本原理及安装部署

    Zookeeper官网地址: http://zookeeper.apache.org/

    Java后端技术
  • Apache ZooKeeper vs. etcd3

    在实现分布式服务协调方案时,有许多出色的系统,如 Apache ZooKeeper,etcd,consul 和 Hazelcast。如果您还没有听说过分布式协调...

    LynnShaw
  • 重温一下ZooKeeper关键点,虽然我不是很喜欢它

    我个人是非常不喜欢这个组件的,因为它的代码虐过我。引入一个Netty就可以轻易实现的网络功能,非要自己在代码里抠 NIO,代码让人看的云里雾里。

    xjjdog
  • 简要分析ZooKeeper基本原理

    最近一直有小伙伴私信我,问一些关于Zookeeper的知识,下边关于的Zookeeper的知识整理了一下,一起学习一下。

    Java后端技术
  • 再不懂ZooKeeper,就安安心心把这篇文章看完

    我本人曾经使用过 ZooKeeper 作为 Dubbo 的注册中心,另外在搭建 Solr 集群的时候,我使用到了 ZooKeeper 作为 Solr 集群的管理...

    苏先生
  • ZooKeeper不仅仅是注册中心,你还知道有哪些?

    Apache ZooKeeper 是一个开源的实现高可用的分布式协调服务器。ZooKeeper是一种集中式服务,用于维护配置信息,域名服务,提供分布式同步和集群...

    cxuan

扫码关注云+社区

领取腾讯云代金券