zoukankan      html  css  js  c++  java
  • zookeeper监控之taokeeper

    1.taokeeper简介

    淘宝的开源监控zookeeper的工具,年久失修!

    项目地址:

    https://github.com/alibaba/taokeeper

    监控项:

    CPU/MEM/LOAD的监控

    ZK日志目录所在磁盘剩余空间监控

    单机连接数的峰值报警

    单机 Watcher数的峰值报警

    节点自检:是指对集群中每个IP所在ZK节点上的PATH: /YINSHI.MONITOR.ALIVE.CHECK 定期进行三次如下流程 : 节点连接 - 数据发布 - 修改通知 - 获取数据 - 数据对比, 在指定的延时内,三次流程均成功视为该节点处于正常状态。

    taokeeper4个线程:

    4个线程,根据clusterId来获取一个zk集群。

    1.ClientThroughputStatJob()

    检测链接的数据信息,并放到GlobalInstace

    2. ZooKeeperALiveCheckerJob()

    调用ZooKeeper API链接测试,启动ZooKeeper数据修改通知检测 ,检查节点是否存活

    3. ZooKeeperStatusCollectJob()

    对集群server进行ssh链接,执行命令 echo stat | nc {IP} {PORT}和echo wchs | nc {IP} {PORT}以及echo wchc | nc {IP} {PORT},将结果封装之后再检查这些数据,是否大于阈值,如果大于就发送错误通知;

    4. HostPerformanceCollectTask()

    收集机器CPU LOAD MEMEORY 负载情况 如果大于设置的值则发送消息

     程序执行过程(过程中执行的命令附录中有说明)

    Initialization类启动四个线程线程,每一个线程查询需要监控集群,再把查询到的集群中的服务器信息,分别作为创建子线程的参数:

    第一个线程的子线程:对集群server进行ssh链接,执行命令 echo cons | nc {IP} {PORT},将获取回的session详细信息封装,放入全局对象GlobalInstace中;
    第二个线程的子线程:调用ZooKeeper API链接测试,试2个3次,如果不行就发送错误通知;
    第三个线程的子线程:对集群server进行ssh链接,执行命令 echo stat | nc {IP} {PORT}和echo wchs | nc {IP} {PORT}以及echo wchc | nc {IP} {PORT},将结果封装,之后再检查这些数据,是否大于阈值,如果大于就发送错误通知;
    第四个线程的子线程:对集群server进行ssh获取服务器CPU,内存,磁盘,load等情况,将结果封装,之后再检查这些数据,是否大于阈值,如果大于就发送错误通知。


    注意:每个zookeeper服务器上安装nc软件:yum -y install nc   
    不安装nc会导致zookeeper监控信息出不来,如下图。zk的角色、连接类等信息就是通过SSH远程执行nc命令,如nc 192.168.1.133 2181

    附录:

    conf :
    3.3.0版本中新增:输出详细的服务配置信息。
    cons:
    3.3.0版本中新增:列出所有 客户端 链接到 服务端的 session 详细信息。包括所有 接收/发送 的信息包数,session Id,延迟的操作,最后执行的操作…
    crst:
    3.3.0版本中新增:重置对所有connection/session统计。
    dump
    列出所有的未处理的会话和零时节点。这个命令只能使用在leader服务上。
    envi
    输出当前服务的详细信息
    ruok
    确认服务运行状态是否正常。如果服务正在运行,则回复”imok”。相反的服务将不会回应。
    返回了”imok”的服务并不一定表名服务是在集群内,只是说明服务器进程激活和绑定到了指定的客户端端口。使用”stat” 可以获取集群的组成情况和客户端的链接信息
    srst
    重置server统计
    srvr
    3.3.0版本中新增:打印所有的服务器信息
    stat
    列出简略的服务信息和链接客户端信息
    wchs
    3.3.0版本中新增: 列出简略的服务器上的watches信息
    wchc
    3.3.0版本中新增: 按照session列出详细的服务器上的watches信息。输出的内容是sessions(connections) 和相关的watches(路径)。
    注意:在不同的watches的数量情况下,这个操作肯能很消耗性能,使用它要格外的小心。
    wchp
    3.3.0版本中新增: 按照path 列出详细的服务器上的watches信息。输出的内容是paths (znodes)和相关sessions。
    注意:在不同的watches的数量情况下,这个操作肯能很消耗性能,使用它要格外的小心。
    mntr
    3.4.0版本中新增:输出可以用来监控集群健康情况的一系列变量。输出的是能兼容Java属性文件的格式,而且内容可能会随时间而改变(比如增加新的变量)。

    $ echo mntr | nc localhost 2185
    zk_version 3.4.0
    zk_avg_latency 0
    zk_max_latency 0
    zk_min_latency 0
    zk_packets_received 70
    zk_packets_sent 69
    zk_outstanding_requests 0
    zk_server_state leader
    zk_znode_count 4
    zk_watch_count 0
    zk_ephemerals_count 0
    zk_approximate_data_size 27
    zk_followers 4 - 只有Leader 拥有的参数
    zk_synced_followers 4 - 只有Leader 拥有的参数
    zk_pending_syncs 0 - 只有Leader 拥有的参数
    zk_open_file_descriptor_count 23 - 仅适用Unix平台
    zk_max_file_descriptor_count 1024 - 仅适用Unix平台

    2.taokeeper部署

    1.下载

    链接:https://github.com/alibaba/taokeeper/downloads

    下载下图的 2.数据库,3.配置文件,4.代码

    2. 环境准备

    a、tomcat : 建议apache-tomcat-6.0.53  (刚开始用apache-tomcat-8.5.15,但是网页显示不全,子链接也加载不出来,后来降低版本就可以了,taokeeper 12年的东西啊)

    b、mysql:笔者是mysql-community-server-5.7.18-1

    c、zookeeper: 笔者是zookeeper-3.4.10

    3.部署

    mysql数据库初始化(导入taokeeper.sql)

    tomcat安装、配置

      在 tomcat/bin/catalina.sh 中添加 JAVA_OPTS=-DconfigFilePath="/root/services/tomcat/webapps/taokeeper-monitor/config/taokeeper-monitor-config.properties"

    taokeeper部署:

      将taokeeper-monitor.tar.gz解压到tomcat的webapps目录下(删除原有文件)。

      新建config(将taokeeper-monitor-config.properties拷贝到此),logs,ZookeeperStore目录,下图所示:

      

      修改配置文件taokeeper-monitor-config.properties 

      (主要是数据库连接,ssh连接zookeeper,附加日志设置) 

    #Daily
    
    systemInfo.envName=taokeeper
    
    #DBCP
    dbcp.driverClassName=com.mysql.jdbc.Driver
    dbcp.dbJDBCUrl=jdbc:mysql://192.168.1.133:3306/taokeeper
    dbcp.characterEncoding=GBK
    dbcp.username=root
    dbcp.password=1234
    dbcp.maxActive=30
    dbcp.maxIdle=10
    dbcp.maxWait=10000
    
    #SystemConstant
    SystemConstent.dataStoreBasePath=/root/services/tomcat/webapps/taokeeper-monitor/ZookeeperStore
    SystemConstant.userNameOfSSH=root
    SystemConstant.passwordOfSSH=1234
    #Optional
    SystemConstant.portOfSSH=22
    
    #LOGBACK
    LOG_HOME=/root/services/tomcat/webapps/taokeeper-monitor/logs
    LOG_LEVEL=DEBUG
    MAX_HISTORY_LOG_FILES=10

    4.启动tomcat

    catalina.sh start

    5.web浏览 http://localhost:8080/taokeeper-monitor/

    6.web配置zookeeper在此不做介绍

    看图参考:http://www.ithao123.cn/content-7333258.html

  • 相关阅读:
    2、react-生命周期1※※※
    4.vue class 绑定- model基础应用
    1.react的基础
    Leetcode 5429 数组中的 k 个最强值
    leetcode 21.合并两个有序链表(迭代)
    【Postman请求无响应】Can not get any response
    【PageHelper】插件不生效的原因及解决办法
    【fasterxml.jackson】字段(反)序列号问题Access.WRITE_ONLY
    【SpringCloud-Maven】依赖版本比对
    【Charles】抓包工具使用
  • 原文地址:https://www.cnblogs.com/nineep/p/7067265.html
Copyright © 2011-2022 走看看