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 条评论
登录 后参与评论

相关文章

来自专栏后端技术探索

nginx常见面试题

Nginx的并发能力在同类型网页服务器中的表现,相对而言是比较好的,因此受到了很多企业的青睐,我国使用Nginx网站的知名用户包括腾讯、淘宝、百度、京东、新浪、...

19320
来自专栏纯洁的微笑

Java程序员必备的Intellij插件

支持lombok的各种注解,从此不用写getter setter这些 可以把注解还原为原本的java代码 非常方便

14120
来自专栏java思维导图

图文并茂,深入浅出Nginx

01前言 Nginx是一款轻量级的Web服务器、反向代理服务器,由于它的内存占用少,启动极快,高并发能力强,在互联网项目中广泛应用。 ? 架构图 上图基本上说明...

43650
来自专栏耕耘实录

Linux修改密码是提示“passwd: 鉴定令牌操作错误”问题的处理办法

今早忽然想修改一下一个普通用户的密码,root登录进去之后键入修改密码命令之后发现提示“passwd: 鉴定令牌操作错误”。

41920
来自专栏后端技术探索

Nginx面试中最常见的18道题 抱佛脚必备

Nginx的并发能力在同类型网页服务器中的表现,相对而言是比较好的,因此受到了很多企业的青睐,我国使用Nginx网站的知名用户包括腾讯、淘宝、百度、京东、新浪、...

30130
来自专栏Java技术栈

Java 程序员必备的 Intellij IDEA 插件

支持lombok的各种注解,从此不用写getter setter这些 可以把注解还原为原本的java代码 非常方便

36430
来自专栏Java后端技术栈

Nginx初探

Nginx——Ngine X,是一款自由的、开源的、高性能HTTP服务器和反向代理服务器;也是一个IMAP、POP3、SMTP代理服务器;也就是说Nginx本身...

12730
来自专栏沃趣科技

ASM磁盘容量改变的故障处理

某个数据库环境中的ASM磁盘,由于历史原因,全部配置为没有RAID信息的JBOD模式。今天在做产品升级,由于软件需要,需要将原来加入到ASM中每个JBOD的磁盘...

362140
来自专栏F-Stack的专栏

F-Stack Q&A 第一期

Q1:F-Stack有中断模式吗,有计划支持吗?在计算密集型的应用中,轮询模式会占用更多的CPU资源? A1:F-Stack暂时只支持轮询模式,后续会支持中断+...

76550
来自专栏建站达人秀

如何搭建 LAMP 网站服务环境

Linux+Apache+Mysql/MariaDB+Perl/PHP/Python一组常用来搭建动态网站或者服务器的开源软件,本身都是各自独立的程序,但是因为...

59650

扫码关注云+社区

领取腾讯云代金券