通过Prometheus监控ZooKeeper

本文介绍了如何通过启用ZooKeeper的JMX服务并使用jmx_exporter,配合Prometheus进行监控。首先在ZooKeeper的配置文件中添加JMXPORT,然后启动jmx_exporter,设置监听ZooKeeper的JMX端口,以HTTP方式暴露监控数据。最后,通过验证jmx_exporter的工作状态确保配置成功。
摘要由CSDN通过智能技术生成

通过在ZooKeeper中埋点来暴露数据,使用Prometheus监控抓取数据,并借助Prometheus Grafana大盘来展示数据,即可实现通过Prometheus监控ZooKeeper的目的。

简单的zk监控:

mntr 命令的输出:echo mntr | nc 192.168.229.161 2181

zk_version  3.4.6-1569965, built on 02/20/2014 09:09 GMT
zk_avg_latency  0		-zk的平均延迟
zk_max_latency  565     -zk的最大延迟数据
zk_min_latency  0
zk_packets_received 95353
zk_packets_sent 95713
zk_num_alive_connections    3
zk_outstanding_requests 0     -zk的请求堆积数
zk_server_state leader        -zk的角色
zk_znode_count  20			  -zk的Znode节点数
zk_watch_count  12		 	  -zk的watch数,跟zk的表数量有关系	
zk_ephemerals_count 9
zk_approximate_data_size    1465
zk_open_file_descriptor_count   37
zk_max_file_descriptor_count    65535
zk_followers    2       - 只有leader进程才有此项输出
zk_synced_followers 2   - 只有leader进程才有此项输出
zk_pending_syncs    0   - 只有leader进程才有此项输出

命令 描述
conf zk服务配置的详细信息
stat 客户端与zk连接的简要信息
srvr zk服务的详细信息
cons 客户端与zk连接的详细信息
mntr zk服务目前的性能状况
wchs watch的简要信息
wchc watch的详细信息,客户端 -> watch的映射,线上环境要小心使用
wchp watch的详细信息, znode -> 客户端的映射,线上环境要小心使用

结合Prometheus监控ZooKeeper 如下


参考地址:https://help.aliyun.com/document_detail/141109.html?spm=5176.13910061.sslink.1.3f65222c9cQHO4

步骤一:启动JMX服务

首先需要在ZooKeeper中启用JMX服务以获取资源信息。

  1. 修改/opt/zk/zookeeper-3.4.10/bin/zkServer.sh,在第44行添加JMXPORT=8999。具体添加位置如下所示。
if [ "x$JMXLOCALONLY" = "x" ]
then
    JMXLOCALONLY=false
fi

JMXPORT=8999 ## 添加在此处第44行if [ "x$JMXDISABLE" = "x" ] || [ "$JMXDISABLE" = 'false' ]
then
  echo "ZooKeeper JMX enabled by default $JMXPORT ..." >&2
  if [ "x$JMXPORT" = "x" ]
  then
  1. 重启ZooKeeper。
/opt/zk/zookeeper-3.4.10/bin/zkServer.sh start /opt/zk/zookeeper-3.4.10/conf/zoo_sample.cfg &

步骤二:在ZooKeeper中启动jmx_exporter<相关包请去上面阿里云地址下载>

其次需要启动jmx_exporter,让JMX信息可以直接通过HTTP方式访问,以便Prometheus监控抓取。

  1. 下载zookeeper.yaml到/opt/exporter_zookeeper/目录下。
  2. 修改下载的/opt/exporter_zookeeper/zookeeper.yaml文件,在第一行添加hostPort: localhost:8999,将JMX服务运行的端口暴露给jmx_exporter。
  3. 下载jmx_exporter的可执行文件到opt/exporter_zookeeper/目录下。
  4. 启动jmx_exporter。
java -Dcom.sun.management.jmxremote.ssl=false -
Dcom.sun.management.jmxremote.authenticate=false -
Dcom.sun.management.jmxremote.port=8998 -cp /opt/exporter_zookeeper/jmx_prometheus_httpserver-0.12.0-jar-with-dependencies.jar 
io.prometheus.jmx.WebServer 8997 /opt/exporter_zookeeper/zookeeper_exporter.yaml &

注意:端口不用改,就是8998,8997 ,8999端口是zk暴露出的端口

至此应用部分配置完成。可通过运行如下命令验证jmx_exporter是否可以正常工作。

curl http://<jmx_exporter所在机器的IP>:8997/metrics

在这里插入图片描述
转载至阿里云

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值