跳到主要内容
版本:v1.6.x

监控:Zookeeper监控

对Zookeeper的通用性能指标进行采集监控

监控前操作

监控 zookeeper 目前的实现方案使用的是 zookeeper 提供的四字命令 + netcat 来收集指标数据
需要用户自己将zookeeper的四字命令加入白名单

  1. 加白名单步骤

    1. 找到我们 zookeeper 的配置文件,一般是 zoo.cfg

    2. 配置文件中加入以下命令

      # 将需要的命令添加到白名单中
      4lw.commands.whitelist=stat, ruok, conf, isro

      # 将所有命令添加到白名单中
      4lw.commands.whitelist=*
    3. 重启服务

      zkServer.sh restart
  2. netcat 协议

目前实现方案需要我们部署zookeeper的linux服务器,安装netcat的命令环境

netcat安装步骤

yum install -y nc

如果终端显示以下信息则说明安装成功

Complete!

配置参数

参数名称参数帮助描述
监控Host被监控的对端IPV4,IPV6或域名。注意⚠️不带协议头(eg: https://, http://)。
任务名称标识此监控的名称,名称需要保证唯一性。
端口Zookeeper的Linux服务器SSH端口。
查询超时时间设置Zookeeper连接的超时时间,单位ms毫秒,默认3000毫秒。
用户名Zookeeper所在Linux连接用户名
密码Zookeeper所在Linux连接密码
采集间隔监控周期性采集数据间隔时间,单位秒,可设置的最小间隔为30秒
是否探测新增监控前是否先探测检查监控可用性,探测成功才会继续新增修改操作
描述备注更多标识和描述此监控的备注信息,用户可以在这里备注信息

采集指标

指标集合:conf

指标名称指标单位指标帮助描述
clientPort端口
dataDir数据快照文件目录,默认10万次操作生成一次快照
dataDirSizekb数据快照文件大小
dataLogDir事务日志文件目录,生产环境放在独立磁盘上
dataLogSizekb事务日志文件大小
tickTimems服务器之间或客户端与服务器之间维持心跳的时间间隔
minSessionTimeoutms最小session超时时间 心跳时间x2 指定时间小于该时间默认使用此时间
maxSessionTimeoutms最大session超时时间 心跳时间x20 指定时间大于该时间默认使用此时间
serverId服务器编号

指标集合:stats

指标名称指标单位指标帮助描述
zk_version服务器版本
zk_server_state服务器角色
zk_num_alive_connections连接数
zk_avg_latencyms平均延时
zk_outstanding_requests堆积请求数
zk_znode_countznode结点数量
zk_packets_sent发包数
zk_packets_received收包数
zk_watch_countwatch数量
zk_max_file_descriptor_count最大文件描述符数量
zk_approximate_data_sizekb数据大小
zk_open_file_descriptor_count打开的文件描述符数量
zk_max_latencyms最大延时
zk_ephemerals_count临时节点数
zk_min_latencyms最小延时

指标集合:envi

指标名称指标单位指标帮助描述
zk_versionZooKeeper版本
hostname主机名
java_versionJava版本
java_vendorJava供应商
java_homeJava主目录
java_class_pathJava类路径
java_library_pathJava库路径
java_io_tmpdirJava临时目录
java_compilerJava编译器
os_name操作系统名称
os_arch操作系统架构
os_version操作系统版本
user_name用户名
user_home用户主目录
user_dir用户当前目录