文档章节

zookeeper 集群状态监控 (taokeeper)

雁南飞丶
 雁南飞丶
发布于 01/17 15:47
字数 787
阅读 43
收藏 0

http://jm.taobao.org/?p=1450

 在公司内部,有不少应用已经强依赖zookeeper,zookeeper的工作状态直接影响它们的正常工作。目前开源世界中暂没有一个比较成熟的zookeeper-monitor, 于是开始zookeeper监控这块工作。

目前zookeeper-monitor能做哪些事情,讲到这个,首先来看看哪些因素对zookeeper正常工作比较大的影响:

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

  2. 连接数。

  3. 注册的Watcher数。

  4. ZNode是否可读,可写。

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

围绕以上几点展开,完成了taokeeper一期的开发,目前主要完成以下方面的监控:(项目地址:https://github.com/alibaba/taokeeper)

  1. CPU/MEM/LOAD的监控
  2. ZK日志目录所在磁盘剩余空间监控
  3. 单机连接数的峰值报警
  4. 单机 Watcher数的峰值报警
  5. 节点自检:是指对集群中每个IP所在ZK节点上的PATH: /YINSHI.MONITOR.ALIVE.CHECK 定期进行三次如下流程 : 节点连接 - 数据发布 - 修改通知 - >获取数据 - 数据对比, 在指定的延时内,三次流程均成功视为该节点处于正常状态。

一、环境

[taokeeper@node3 ~]$ java -version
java version "1.7.0_79"
Java(TM) SE Runtime Environment (build 1.7.0_79-b15)
Java HotSpot(TM) 64-Bit Server VM (build 24.79-b02, mixed mode)

[taokeeper@node3 ~]$ apache-tomcat-7.0.85/bin/catalina.sh version
Using CATALINA_BASE:   /home/taokeeper/apache-tomcat-7.0.85
Using CATALINA_HOME:   /home/taokeeper/apache-tomcat-7.0.85
Using CATALINA_TMPDIR: /home/taokeeper/apache-tomcat-7.0.85/temp
Using JRE_HOME:        /home/taokeeper/jdk1.7.0_79
Using CLASSPATH:       /home/taokeeper/apache-tomcat-7.0.85/bin/bootstrap.jar:/home/taokeeper/apache-tomcat-7.0.85/bin/tomcat-juli.jar
Server version: Apache Tomcat/7.0.85
Server built:   Feb 7 2018 18:52:33 UTC
Server number:  7.0.85.0
OS Name:        Linux
OS Version:     3.10.0-862.el7.x86_64
Architecture:   amd64
JVM Version:    1.7.0_79-b15
JVM Vendor:     Oracle Corporation

root@[ 9.11.11.50 ]@znhjkdbs:/root# mysql -V
mysql  Ver 14.14 Distrib 5.6.40, for linux-glibc2.12 (x86_64) using  EditLine wrapper

2、安装

1、初始化数据库  taokeeper.sql
2、下载taokeeper-monitor.tar.gz 到tomcat的webapps 下
3、修改taokeeper-monitor-config.properties

#Daily

systemInfo.envName=DAILY

#DBCP
dbcp.driverClassName=com.mysql.jdbc.Driver
dbcp.dbJDBCUrl=jdbc:mysql://9.11.11.50:3306/taokeeper  #MySQL
dbcp.characterEncoding=GBK
dbcp.username=aa 用户名密码
dbcp.password=bb
dbcp.maxActive=30
dbcp.maxIdle=10
dbcp.maxWait=10000

#SystemConstant
SystemConstent.dataStoreBasePath=/home/yinshi.nc/taokeeper-monitor/
SystemConstant.userNameOfSSH=root  #远程连接zookeeper服务器账号
SystemConstant.passwordOfSSH=123456 #密码
#Optional
SystemConstant.portOfSSH=22
每个zookeeper服务器上安装nc软件,yum -y install nc   # 不安装nc会导致zookeeper监控信息出不来,zk的角色、连接娄等信息就是通过SSH远程执行nc命令,如nc 9.11.11.50 2181

3、修改tomcat启动脚本

添加
JAVA_OPTS=-DconfigFilePath="/home/taokeeper/apache-tomcat-7.0.85/webapps/taokeeper-monitor-config.properties"

4、关闭tomcat日志

关闭tomcat日志,要不然 $CATALINA_HOME/logs/catalina.out 文件很容易就写得很大,直到空间用完

修改/etc/init.d/tomcat启动脚本 和 $CATALINA_HOME/bin/catalina.sh

把CATALINA_OUT="$CATALINA_BASE"/logs/catalina.out 替换为 CATALINA_OUT=/dev/null



把 webapps下taokeeper-monitor/WEB-INF/classes/log4j.properties

所有 INFO 改成 OFF

log4j.appender.ROLLINGFILE.File=/home/admin/taokeeper-monitor/logs/taokeeper-monitor.log 改成

log4j.appender.ROLLINGFILE.File=/dev/null

5、如图

6、软件包下载

链接:https://pan.baidu.com/s/15K7sIEPpPXKCecjsUq10qw 
提取码:zpiw 

 

© 著作权归作者所有

雁南飞丶
粉丝 37
博文 176
码字总数 228466
作品 0
西安
运维
私信 提问
zookeeper监控taokeeper安装

一、直接部署 1. 下载taokeeper.sql,初始化数据库(Mysql). 2. 下载taokeeper-monitor.war文件,解压到tomcat的webapps目前下,确保最后目录结构如下: %TOMCAT_HOME%webappstaokeeper-monito...

chaun
2015/08/14
0
0
ZooKeeper 的管理工具 - Shepher

Shepher 是一款 ZooKeeper 的管理工具。在小米公司,我们用它作为配置管理中心。Readme in English 特性 ZooKeeper 节点的可视化操作 ZooKeeper 节点的快照管理 ZooKeeper 节点修改的 Diff 和...

梦回唐朝302
2018/05/18
0
0
基于zookeeper+leveldb搭建activemq集群实现高可用

自从activemq5.9.0开始,activemq的集群实现方式取消了传统的Master-Slave方式,增加了基于zookeeper+leveldb的实现方式,其他两种方式:目录共享和数据库共享依然存在。本文主要阐述基于zoo...

chaun
2015/08/17
0
2
基于zookeeper+leveldb搭建activemq集群

自从activemq5.9.0开始,activemq的集群实现方式取消了传统的Master-Slave方式,增加了基于zookeeper+leveldb的实现方式,其他两种方式:目录共享和数据库共享依然存在。本文主要阐述基于zoo...

萧十一郎君
2014/09/12
0
7
tookeeper配置

@kobe_gino 你好,想跟你请教个问题: 4. 在tomcat启动脚本中catalina.bat中(大概在186行下面)添加JAVA_OPTS: windows上: 1 set JAVA_OPTS=-DconfigFilePath="E:\tools\zookeeper\taokeeper......

蚍蜉游虚
2015/12/26
261
2

没有更多内容

加载失败,请刷新页面

加载更多

优雅的关闭Spring Boot

优雅的关闭Spring Boot 1、实现 TomcatConnectorCustomizer 接口拿到Tomcat的连接获取 Tomcat连接池 2、实现 ApplicationListener<ContextClosedEvent> 监听服务器关闭事件,注册JVM钩子函数...

sowhat
今天
2
0
Python3-Web开发

简介 Web开发框架 什么是Web框架? Web应用程序框架或简单的Web框架表示一组库和模块,使Web应用程序开发人员能够编写应用程序,而不必担心协议,线程管理等低级细节。 virtualenv是一个虚拟...

wuxinshui
今天
3
0
使用技媒体实践编写发布博客

技媒体实践博客 CSDN OSChina 知乎 简书 思否 掘金 51CTO

晨猫
今天
2
0
Lucene

1、什么是全文检索 数据分类 我们生活中的数据总体分为两种:结构化数据和非结构化数据。 结构化数据:指具有固定格式或有限长度的数据,如数据库,元数据等。 非结构化数据:指不定长或无固...

榴莲黑芝麻糊
昨天
5
0
python到setuptools、pip工具的安装

python安装 基础开发库   apt-get install gcc  apt-get install openssl libssl-dev 安装数据库和开发库   apt-get install mysql-server libmysqld-dev python环境   下载地址...

问题终结者
昨天
6
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部