Kafka的监控

在开发工作中,消费kafka集群中的消息时,数据的变动是我们关心的,当业务并不复杂的前提下,我们可以使用kafka提供的命令工具,配合zookeeper客户端工具,可以很方便的完成工作。

监控度量指标

JMX

在实现Kafka监控系统的过程中,首先我们要知道监控的数据从哪来,kafka自身提供的监控指标都可以通过JMX(Java Manager Extension)来进行获取。在使用JMX之前首先要开启JMX的功能。

JMX_PORT=9999 ./kafka-server-start.sh ../config/server.properties

JConsole

在开启JMX之后最简单的监控指标的方式就是JConsole,可以通过JConsole连接service:jmx:rmi:///jndi/rmi://localhost:9999/jmxrmi或者localhost:9999来查看相应的数据值。

broker监控指标

活跃控制器

该指标表示broker是否就是当前的集群控制器,其值可以是0或1。如果是1,表示broker就是当前的控制器。任何时候,都应该只有一个broker是控制器,而且这个broker必须一直是集群控制器。如果出现了两个控制器,说明有一个本该退出的控制器线程被阻塞了,这会导致管理任务无法正常执行,比如移动分区。为了解决这个问题,需要将这两个broker重启,而且不能通过正常的方式重启,因为此时它们无法被正常关闭。

请求处理器空闲率

Kafka使用了两个线程池来处理客户端请求:网络处理器线程池和请求处理器线程池。网络处理器线程池负责通过网络读入和写出数据。请求处理器线程池负责处理来自客户端的请求,包括从磁盘读取消息和往磁盘写入消息。因此,broker负载的增长对这个线程池有很大影响。

主题流入字节

在对broker已接收的生产者客户端消息流量进行度量时,主题流入字节速率很有用。该指标可以用于确定何时该对集群进行扩展或开展其他与规模增长相关的工作。它也可以用于评估一个broker是否比集群里的其他broker接收了更多的流量,如果出现了这种情况,就需要对分区进行再均衡。

主题流出字节

主题流出字节速率与流入字节速率类似,是另一个与规模增长有关的度量指标。流出字节速率显示的是消费者从broker读取消息的速率。流出速率与流入速率的伸缩方式是不一样的,这要归功于kafka对多消费者客户端的支持。

主题流入的消息

消息速率是以每秒生产消息个数的方式来表示流量,而且不考虑消息的大小。

分区数量

broker的分区数量一般不会经常发生改变,它是指分配给broker的分区总数。它包括broker的每一个分区副本,不管是首领还是跟随者。

首领数量

该度量指标表示broker拥有的首领分区数量。该指标也应该在整个集群的broker上保持均等。

主题分区监控

主题实例度量指标

分区实例度量指标

生产者监控指标

消费者监控指标

你可能感兴趣的:(kafka,kafka,java,分布式)