zkdoctor是一个ZooKeeper服务的统计、监控报警以及自动化运维平台:监控ZooKeeper集群运行状态,做到有问题及时发现、及时解决,掌握ZooKeeper整体运行情况。

准备环境

jdk下载相应版本

http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html

安装jdk

#rpm -ivh jdk-8u74-linux-x64.rpm

检查版本号

# java -version

安装Mysql 

安装MySQLyum

# yum -y install http://dev.mysql.com/get/mysql-community-release-el7-5.noarch.rpm

安装MySQL

# yum -y install mysql mysql-devel mysql-server mysql-utilities

更改Mysql大小写敏感配置

#vim /etc/my.conf

lower_case_table_names = 1

启动Mysql

#systemctl start mysql

安装npm

找到对应版本下载npm文件

https://nodejs.org/zh-cn/download/

解压npm文件

#mkdir /usr/local/lib/nodejs

#tar -zxvf node-v10.15.0-linux-x64.tar.gz 

#cd node-v10.15.0-linux-x64

#cp -r * /usr/local/lib/nodejs/


配置环境变量

#vim .bash_profile 

   # Nodejs

   export NODEJS_HOME=/usr/local/lib/nodejs/bin

   export PATH=$NODEJS_HOME:$PATH

让配置环境变量生效

#source  .bash_profil

查看npm是否安装成功

zkdoctor安装部署_第1张图片

创建软连接

# ln -s /usr/local/lib/nodejs/node-$VERSION/bin/node /usr/bin/node

# ln -s /usr/local/lib/nodejs/node-$VERSION/bin/npm /usr/bin/npm

# ln -s /usr/local/lib/nodejs/node-$VERSION/bin/npx /usr/bin/npx

安装zkdoctor

到github下载zkdoctor包

https://github.com/ucarGroup/zkdoctor 选择tags, 因为war包在/src/main/deploy目录下,

将下载的包解压至/usr/local/zkdoctor目录

zkdoctor安装部署_第2张图片

启动和停止脚本:位于/src/main/script目录下start.shstop.sh,将zkdoctor.war以及启动、停止脚本复制到对应目录(默认:/usr/local/zkdoctor目录)

1)部署目录配置在start.sh里,默认将war包放在/usr/local/zkdoctor目录

2)日志输出目录配置在logback.xml中,默认:/usr/local/zkdoctor/logs/,若该目录不存在,则需要创建该目录

PS:若运行脚本报错...syntax error near unexpected token...,可能由于windows下该文件被更改过,可以转化一下再运行,通过执行:dos2unix start.sh完成对应文件格式转化(若未安装dos2unix ,则yum install一下dos2unix即可 )

创建数据库

#mysql -uroot

mysql> create database zkdoctor;

mysql>use zkdoctor

mysql> source /usr/local/zkdoctor/zkdoctor.sql;

安装前端

#cd /usr/local/zkdoctor/src/main/webapp/src

前端项目为React+TypeScript,需安装nodejs。代码位于webapp/src下,进入该目录后,分别执行npm install(如果一次install操作

没能把所有依赖全部下下来,请多执行几次,以防有部分依赖没能正确下载)npm run build

启动后端

# /usr/local/zkdoctor/start.sh 

启动前端

#npm run start &

通过浏览器就可以访问http://ip:8080/zkdoctor/index.html#/login    默认账号密码:admin

zkdoctor安装部署_第3张图片

登陆后的界面

zkdoctor安装部署_第4张图片

创建集群

在【集群管理】→ 【添加集群】中进行操作,填写信息要求:

zkdoctor安装部署_第5张图片

集群信息

集群管理】→ 【集群列表】中,监控开关控制集群信息统计。监控任务一分钟执行一次,通过ZooKeeper的四字命令mntr收集服务端的数据,完成数据处理和存储。统计数据详情可在【集群管理】→ 【集群列表】的【监控统计】中进行查看,示例如下:zkdoctor安装部署_第6张图片

其他功能自行研究

使用官方的war包启动,添加Zk集群,有些Zk无法显示数据,显示为异常,如图:

zkdoctor安装部署_第7张图片

是因为有些监控项无法找到,将无法找到的监控项注掉,需要重新编译成war包,替换掉老的war包,重新启动就OK 

zkdoctor安装部署_第8张图片

当然,也可以用我生成好的docker镜像包

#docker pull 564239555/zkdoctor

启动脚本

#docker run --privileged --cap-add SYS_ADMIN -e container=docker -it --name zkdoctor -v /data/zkdoctor:/var/lib/mysql -p 8080:8080 -d --restart=always centos:latest /usr/sbin/init 

启动docker后,需要进入到容器里,创建数据库和启动服务等操作,具体操作如上步骤!

参考文档:https://github.com/ucarGroup/zkdoctor/wiki/01.zkdoctor%E8%AE%BE%E8%AE%A1%E6%96%87%E6%A1%A3