ZooKeeper监控工具(六)

本文涉及的产品
服务治理 MSE Sentinel/OpenSergo,Agent数量 不受限
简介: 之前说了那么多配置信息,具体做的怎么样,还需要真正的获取ZooKeeper的运行时信息才行。这里介绍ZooKeeper的监控。与文无关有如下方式:使用内置的四字命令来获取健康状态信息使用JMX查看运行状态使用Exhibitor使用Sass四字命令最简单的监控方式就是使用ZooKeeper的四字命令,你可以直接通过telnet或者nc命令查看状态。

之前说了那么多配置信息,具体做的怎么样,还需要真正的获取ZooKeeper的运行时信息才行。这里介绍ZooKeeper的监控。

img_046fccbdb13796fd373f5841f2f41491.png
与文无关

有如下方式:

  • 使用内置的四字命令来获取健康状态信息
  • 使用JMX查看运行状态
  • 使用Exhibitor
  • 使用Sass

四字命令

最简单的监控方式就是使用ZooKeeper的四字命令,你可以直接通过telnet或者nc命令查看状态。

img_80dc6bec0bdbb1e89452346155bb02df.png
四字命令

img_4d337d6ab9ce3fa58a83ead6f99dbc4e.png
四字命令

img_93c0c44f2b0783a76ad107f109fe047b.png
四字命令

常用的四字命令如下:

  • conf: 打印ZooKeeper的配置信息
  • cons: 列出所有的客户端会话链接
  • crst: 重置所有的客户端连接
  • dump: 打印集群的所有会话信息,包括ID,以及临时节点等信息。用在Leader节点上才有效果。
  • envi: 列出所有的环境参数
  • ruok: "谐音为Are you ok"。检查当前服务器是否正在运行。
  • stat: 获取ZooKeeper服务器运行时的状态信息,包括版本,运行时角色,集群节点个数等信息。
  • srst: 重置服务器统计信息
  • srvr: 和stat输出信息一样,只不过少了客户端连接信息。
  • wchs: 输出当前服务器上管理的Watcher概要信息
  • wchc: 输出当前服务器上管理的Watcher的详细信息,以session为单位进行归组
  • wchp: 和wchc非常相似,但是以节点路径进行归组
  • mntr: 输出比stat更为详细的服务器统计信息

JMX

JMX是用来远程监控Java应用的框架,这个也可以用来监控其他的Java应用。JMX使用起来也很简单。

在运行Java的jar的时候:

//不需要用户密码的
-Dcom.sun.management.jmxremote.port=5000  
-Dcom.sun.management.jmxremote.authenticate=true 
-Dcom.sun.management.jmxremote.ssl=false 

// 使用需要用户密码登录的
-Dcom.sun.management.jmxremote.port=5000  
-Dcom.sun.management.jmxremote.authenticate=true 
-Dcom.sun.management.jmxremote.ssl=false 
-Dcom.sun.management.jmxremote.access.file=jmxremote.access
-Dcom.sun.management.jmxremote.password.file=jmxremote.password   

 cat jmxremote.access
monitorRole   readonly
controlRole   readwrite
 cat jmxremote.password
monitorRole mypassword
controlRole mypassword

接下来,我们可以使用jConsole或者VisualVM进行监控。

默认情况下,ZooKeeper允许本地进行监控。


img_b24b68d27847f6acff52a95d31c012e2.png
jconsole图

如果想要远程监控,可以修改zkServer.sh文件中的shell脚本


img_bf989347f32bf2265e65419c7a71a3c1.png
JMX参数图

修改方式为我们刚才看到的加上

-Dcom.sun.management.jmxremote.access.file=jmxremote.access
-Dcom.sun.management.jmxremote.password.file=jmxremote.password   

Exhibitor

Exhibitor是一个ZooKeeper的管理工具,由Netfix公司开发,在ZooKeeper监控,备份恢复,清洁,在可视化上提供了不小的帮助。

  1. 首先我们下载exhibitor的pom文件
mkdir build
cd build 
wget -c https://raw.github.com/Netflix/exhibitor/master/exhibitor-standalone/src/main/resources/buildscripts/standalone/maven/pom.xml
  1. 打包编译jar包
//这个打包的时间真心长
mvn clean package
// 测试是否正确打包,这个exhibitor根据你自己打包出来的文件名进行测试
java -jar target/exhibitor-1.6.0.jar --help       

  1. 运行
java -jar exhibitor-1.6.0.jar -c file
  1. 在浏览器中输入exhibitor的地址
    http://服务器地址:8080/exhibitor/v1/ui/index.html

  2. 配置Exhibitor


    img_b6a127383f08f43da40a8411393eb258.png
    Exhibitor面板
  1. 更多Exhitor的详细信息,参考github的wiki

https://github.com/soabase/exhibitor/wiki

云服务商

当然也有一些云服务商提供ZooKeeper的监控服务,一般都是收费的。
国外的有:server density. 网站:https://www.serverdensity.com/

最后

在看ZooKeeper监控的时候,发现ZooKeeper的监控工具都很老了,大部分都是几年前的了,ZooKeeper这是要被淘汰了吗...,好用的软件应该都有很好用的工具才对。不过既然当初它那么流行,还是有值得研究的地方...

参考

  • 《从Paxos到ZooKeeper-分布式一致性原理与实践》
  • 《Apache ZooKeeper Essetial》
  • Exhibitor Wiki
相关实践学习
基于MSE实现微服务的全链路灰度
通过本场景的实验操作,您将了解并实现在线业务的微服务全链路灰度能力。
目录
相关文章
|
4月前
|
存储 Java Linux
【Zookeeper】基于3台linux虚拟机搭建zookeeper集群(二)
【Zookeeper】基于3台linux虚拟机搭建zookeeper集群
76 1
【Zookeeper】基于3台linux虚拟机搭建zookeeper集群(二)
|
5月前
分布式系列教程(25) -解决Zookeeper启动失败的问题
分布式系列教程(25) -解决Zookeeper启动失败的问题
135 0
|
4月前
|
存储 监控 网络协议
Zookeeper监控之四字监控
Zookeeper监控之四字监控
62 0
|
4月前
|
网络协议 Linux 数据安全/隐私保护
【Zookeeper】基于3台linux虚拟机搭建zookeeper集群(一)
【Zookeeper】基于3台linux虚拟机搭建zookeeper集群
82 1
【Zookeeper】基于3台linux虚拟机搭建zookeeper集群(一)
|
11月前
|
监控 Java Apache
Apache ZooKeeper - JMX监控 ZooKeeper 的运行状态
Apache ZooKeeper - JMX监控 ZooKeeper 的运行状态
95 0
|
消息中间件 运维 负载均衡
Zookeeper 3.5.8 & Kafka 2.4.0 安装与调优
Zookeeper 3.5.8 & Kafka 2.4.0 安装与调优
649 0
|
存储 Java Linux
Zookeeper分布式集群搭建(六)
Zookeeper分布式集群搭建(六)
88 0
Zookeeper分布式集群搭建(六)
|
监控 Java 网络安全
JMX监控zookeeper
JMX监控zookeeper
7118 0
|
Java Linux Shell
Zookeeper单机安装部署与配置(二)
Zookeeper单机安装部署与配置(二)
313 0
|
SQL 分布式计算 算法
ZooKeeper安装部署
ZooKeeper(动物园管理员),顾名思义,是用来管理Hadoop(大象)、Hive(蜜蜂)、Pig(小猪)的管理员,同时Apache HBase、Apache Solr、LinkedIn Sensei等众多项目中都采用了ZooKeeper。
90 0