ZooKeeper 的监控


ZooKeeper 服务可以通过两种主要方式之一进行监控

  • 通过使用 The Four Letter Words( 4 个字母单词)
  • JMX 的命令端口

The Four Letter Words

四个字母单词即一组检查Zookeeper节点状态的命令。 每个命令由四个字母组成。 可以在客户端端口通过telnetnc 向 ZooKeeper 发出命令。

官方文档指出:四个字母的单词在使用前需要明确列入白名单。 具体请参考 https://zookeeper.apache.org/doc/r3.5.5/zookeeperAdmin.html#sc_clusterOptions。 四字母单词在未来将被弃用,请改用 AdminServer

下面演示下四个字母的命令。

  1. 修改配置文件启用所有四个字母的单词命令:

    vi conf/zoo1.cfg

    tickTime = 2000
    dataDir=./data/zookeeper1
    clientPort=2181
    initLimit=10
    syncLimit=5
    server.1=localhost:2881:3881
    server.2=localhost:2882:3882
    server.3=localhost:2883:3883
    4lw.commands.whitelist=*  #增加这一行
  2. 重启 ZooKeeper

  3. 命令的使用

  • 测试连通性

    echo ruok | nc localhost 2181
  • conf: 打印有关服务配置的详细信息

    echo conf  | nc localhost 2181
  • stat: 列出服务器和连接的客户端的简要详细信息

    echo stat  | nc localhost 2181
  • dump: 查看临时节点的信息

    • 连接到 ZooKeeper 服务端

      ./bin/zkCli.sh -server 127.0.0.1:2181
    • 创建一个临时节点

      create -e /lock
    • 查看临时节点

      echo dump  | nc localhost 2181
      SessionTracker dump:
      Global Sessions(1):
      0x1001e04b9a40000	30000ms
      ephemeral nodes dump:
      Sessions with Ephemerals (1):
      0x1001e04b9a40000:
      	/lock
      Connections dump:
      Connections Sets (4)/(2):
      0 expire at Wed Apr 05 17:24:39 CST 2023:
      1 expire at Wed Apr 05 17:24:49 CST 2023:
      	ip: /0:0:0:0:0:0:0:1:62200 sessionId: 0x0
      0 expire at Wed Apr 05 17:24:59 CST 2023:
      1 expire at Wed Apr 05 17:25:09 CST 2023:
      	ip: /127.0.0.1:59202 sessionId: 0x1001e04b9a40000
  • wchs: 查看 watch 信息

    • 连接到 ZooKeeper 服务端

      ./bin/zkCli.sh -server 127.0.0.1:2181
    • 注册一个watch

      [zk: 127.0.0.1:2181(CONNECTED) 1] get -w /lock
      null
    • 查看 watch

      echo wchc  | nc localhost 2181
      0x1001e04b9a40000
      	/lock

更多的命令请查看官方文档:https://zookeeper.apache.org/doc/r3.5.5/zookeeperAdmin.html#sc_zkCommands

JXM

https://zookeeper.apache.org/doc/r3.5.5/zookeeperJMX.html

ZooKeeper 很好的支持了 JMX,大量的监控和管理工作都可以通过 JMX 来做。可以把 ZooKeeper 的 JMX 数据集成到 Prometheus,使用 Prometheus 来做 ZooKeeper 的监控。

下面演示下如何使用 JMX。

  • 运行 JMX console:

    Java JDK 附带一个名为 jconsole 命令,它可用于连接到 ZooKeeper 进行一行简的单查看和管理。

    jconsole

参考


文章作者: 张权
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 张权 !
评论
  目录