在公司内部,有不少应用已经强依赖zookeeper,比如meta和精卫系统,zookeeper的工作状态直接影响它们的正常工作。目前开源世界中暂没有一个比较成熟的zookeeper-monitor,公司内部的各个zookeeper运行也都是无监控,无报表状态。于是开始zookeeper监控这块工作。
目前zookeeper-monitor能做哪些事情,讲到这个,首先来看看哪些因素对zookeeper正常工作比较大的影响:
- 用于zookeeper写日志的目录要有足够大小,并且强烈建议在单独的磁盘(挂载点)上,这是影响ZK性能最大因素之一。
- 连接数。
- 注册的Watcher数。
- ZNode是否可读,可写。
- ZK事件通知的延时是否过大。
围绕以上几点展开,完成了taokeeper一期的开发,目前主要完成以下方面的监控:(项目地址:https://github.com/nileader/taokeeper)
l CPU/MEM/LOAD的监控
l ZK日志目录所在磁盘剩余空间监控
l 单机连接数的峰值报警
l 单机 Watcher数的峰值报警
l 节点自检:是指对集群中每个IP所在ZK节点上的PATH: /YINSHI.MONITOR.ALIVE.CHECK 定期进行三次如下流程 : 节点连接 – 数据发布 – 修改通知 – 获取数据 – 数据对比, 在指定的延时内,三次流程均成功视为该节点处于正常状态。
-
ZooKeeper集群实时状态 (点击图片查看大图)

ZooKeeper监控报警设置 (点击图片查看大图)

ZooKeeper集群状态趋势图 (点击图片查看大图)

如何安装部署
一、直接部署
1. 下载taokeeper.sql,并初始化Mysql数据库
2. 下载taokeeper-monitor.zip文件,解压到tomcat的webapps目前下,确保最后目录结构如下: %TOMCAT_HOME%\webapps\taokeeper-monitor\WEB-INF
3. 编辑 %TOMCAT_HOME%\webapps\taokeeper-monitor\WEB-INF\logback.xml 以下配置:
<property name=”LOG_HOME” value=”/home/yinshi.nc/taokeeper-monitor/logs” />
<property name=”LOG_LEVEL” value=”INFO” />
<property name=”LOG_LAYOUT_PATTERN” value=”%-325%d{HH:mm:ss.SSS} [%thread]) %-5level %logger{32}:%M@%L %n– %msg%n” />
<property name=”MAX_HISTORY_LOG_FILES” value=”10″ />
4. 编辑 %TOMCAT_HOME%\webapps\taokeeper-monitor\WEB-INF\spring-beans.xml
<!– 系统信息 –>
<bean id=”systemInfo” class=”com.taobao.taokeeper.common.SystemInfo”>
<property name=”envName” value=”DAILY” />
</bean>
<!– 系统配置 –>
<bean id=”systemConstant” class=”com.taobao.taokeeper.common.constant.SystemConstant”>
<property name=”dataStoreBasePath” value=”/home/yinshi.nc/taokeeper-monitor/” /> <!– 状态信息存储,防止因为数据库挂造成的影响 –>
<property name=”userNameOfSSH” value=”yinshi.nc” /> <!– ZK服务器用户名与密码 –>
<property name=”passwordOfSSH” value=”123456″ />
<property name=”configOfMsgCenter” value=”" />
</bean>
<bean id=”dataSourceManager” class=”common.toolkit.java.util.db.DbcpUtil”>
<property name=”driverClassName” value=”com.mysql.jdbc.Driver” />
<property name=”dbJDBCUrl” value=”jdbc:mysql://1.1.1.1:3306/taokeeper” />
<property name=”characterEncoding” value=”GBK” />
<property name=”username” value=”root” />
<property name=”password” value=”123456″ />
<property name=”maxActive” value=”30″ />
<property name=”maxIdle” value=”10″ />
<property name=”maxWait” value=”10000″ />
</bean>
5. 启动tomcat服务器
二、从源代码开始
1. Check out 源代码:svn co http://code.taobao.org/svn/taokeeper/trunk taokeeper
2. 配置:
taokeeper-monitor
|__src/main/resource
|__*.properties
|__logback.xml(LOG_HOME)
————————————————————————
#Daily
systemInfo.envName=DAILY
#DBCP
dbcp.driverClassName=com.mysql.jdbc.Driver
dbcp.dbJDBCUrl=jdbc:mysql://1.1.1.1:3306/taokeeper
dbcp.characterEncoding=GBK
dbcp.username=root
dbcp.password=123456
dbcp.maxActive=30
dbcp.maxIdle=10
dbcp.maxWait=10000
#SystemConstant
SystemConstent.dataStoreBasePath=/home/yinshi.nc/taokeeper-monitor/
userNameOfSSH=yinshi.nc
passwordOfSSH=123456
#LOGBACK
LOG_HOME=/home/yinshi.nc/taokeeper-monitor/logs
LOG_LEVEL=INFO
MAX_HISTORY_LOG_FILES=10
————————————————————————————-
3. 到taokeeper根目录下执行 packageDaily.cmd 命令,打成一个war包,之后进行部署
如何使用
1. taokeeper-monitor启动后,还没有配置任何zookeeper集群,点击“加入监控”进行集群添加。

2. 配置zookeeper集群信息

分享到:
相关推荐
淘宝网技术框架解析 在深入探讨淘宝网技术框架之前,我们先来理解一下为何电子商务网站的架构设计如此重要。随着互联网技术的飞速发展,电子商务已成为人们日常生活中不可或缺的一部分,而作为中国乃至全球最大的...
《大数据云计算技术:淘宝网Hadoop与数据分析》 在当今的信息时代,大数据和云计算已经成为了信息技术领域的核心组成部分。淘宝网作为中国最大的电子商务平台,其背后的数据处理能力是其成功的关键之一。本篇将深入...
《阿里巴巴集团技术丛书——淘宝一线团队实践》是深入解析淘宝技术体系的重要著作,它揭示了在大型分布式网站架构设计与实践中积累的宝贵经验。书中详细介绍了如何构建高可用、高性能的电商平台,以及如何利用大数据...
- **监控与检测**:通过Agent持续监控主库的状态,并利用ZooKeeper作为中心协调器。 - **故障检测**:一旦检测到主库出现故障,立即触发切换流程。 - **自动恢复**:原主库恢复后,能够自动将其重新设置为备库状态,...
淘宝针对HBase的监控、运维及测试体系构建了一套完善的架构,包括Zookeeper的集中管理、HBase集群的独立部署、HDFS的统一管理、HMaster的备份机制等,确保了系统的稳定运行和高效维护。 淘宝在HBase的应用与优化...
- **Zookeeper**:作为配置服务器,提供分布式锁,并监控MySQL实例的可用性。 - **RabbitMQ**:基于AMQP协议,实现系统间可靠通信。 #### 八、资源隔离与调度 - 通过CGroup技术实现资源的隔离,控制用户的MySQL进程...
文章中提到的ConfigServer是一个提供非持久配置发布和订阅的服务,它在没有使用开源的ZooKeeper之前就在淘宝内部开发使用,主要用于分布式服务的配置管理。由于文字识别技术限制,文章中可能存在着一些字识别错误或...
阿里巴巴的技术架构包括数据产品、淘宝主站和大数据状况等。腾讯的技术架构包括分布式数据仓库和HIVE在腾讯的实践分享等。百度的技术架构包括云计算总体介绍和下一代计算系统等。 大数据技术架构的模型包括数据挖掘...
Elastic-Job是一个分布式任务调度框架,源自于淘宝的JobX,现在由当当网开源维护。它提供了简单易用的API,使得开发者可以轻松地实现任务的分布式部署和执行,解决了在大型分布式系统中任务调度的复杂问题。Elastic-...
【搜索引擎技术分享 一站式搜索服务平台-TSearcher】 TSearcher是一个由淘宝开发的一站式全文搜索服务平台,最初是为了满足内部部门的搜索需求而创建。随着时间的推移,它逐渐发展壮大,不仅服务于淘宝网,还涵盖了...
《淘宝Java中间件之路》是一本深入探讨Java中间件技术的资源,主要针对那些希望了解和掌握大型电商平台如淘宝背后的技术架构与中间件系统的读者。这本书籍或文档集合详细介绍了如何构建可扩展、高可用、高性能的...
云计算和大数据是当今信息技术领域的核心概念,它们相互交织,共同推动了信息技术的革新。这篇文档主要探讨了云计算和大数据的关键技术及其应用。 首先,虚拟化技术是云计算的基础,它允许在单一物理硬件上运行多个...
每种方案都有其特点,但唯品会最终选择自建监控平台,这是为了实现端到端监控的高度可治理性,能够根据大促动态调整采样率和日志采集,并且在系统复杂、海量数据环境下提供快速接入与升级的便捷性。 接下来,姚捷...
Go-Zero是淘宝技术团队开源的一个微服务治理框架,主要由gRPC、Web框架、分布式事务、服务注册与发现、配置中心、日志、监控等多个组件构成。Go-Zero的目标是简化微服务的开发和运维过程,提供一站式的解决方案。 ...
利用JavaAgent字节码增强技术,只需添加启动参数即可实现自动化的监控和性能数据收集。这意味着无需修改现有代码结构,大大降低了部署和维护成本。 此外,Pinpoint还具备以下特点: - **易于部署**:安装过程简单...
对比其他行业的技术挑战,如淘宝、携程和滴滴,饿了么的独特之处在于涉及用户、商户、骑手等多个核心角色,特别是在开放平台的技术实施上。饿了么的服务化架构设计考虑到了这些角色间的交互和服务质量的保障。 服务...
- 专门提到了淘宝的通用搜索产品TSearcher。 2. 网易通用搜索系统的实现 - 网易通用搜索系统被称作NDIR(Ningbo Development Institute of Research),其架构设计与主要模块被详细讲解。 - 系统架构可能涉及...
- **Master**:Master服务管理Region的分配,并确保系统的高可用性,通常使用Zookeeper来协调Master的选举过程。 #### 强一致性和水平伸缩 - **强一致性**:同一行数据的所有操作都在同一个Region Server上执行,...
于是我将自己对分布式的理解融入到这个框架中,考虑到底层实现技术的相似性,我将Hadoop,Zookeeper,MQ,分布式缓存四大主要的分布式计算功能合为一个框架内,对复杂的分布式计算应用进行了大量简化和归纳。...