博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Kafka监控
阅读量:6207 次
发布时间:2019-06-21

本文共 3651 字,大约阅读时间需要 12 分钟。

Kafka使用Yammer Metrics来报告server和client的众多metric。还可以使用其他的插件来跟你的监控系统连接起来,比如https://cwiki.apache.org/confluence/display/KAFKA/JMX+Reporters中提到的ganglia和Graphite等。默认使用的是JMX,最简单的观察方式是使用jconsole连接你的server或者client,就可以看到所有可用的metric。我自己是使用Zabbix跟JMX对接,监测一些metric,并进行报警,以下metric是值得关注的:

 

描述:所有的topic的消息速率(消息数/秒)

Mbean名:"kafka.server":name="AllTopicsMessagesInPerSec",type="BrokerTopicMetrics"

正常的值:

 

描述:所有的topic的流入数据速率(字节/秒)

Mbean名:"kafka.server":name="AllTopicsBytesInPerSec",type="BrokerTopicMetrics"

正常的值:

 

描述:producer或Fetch-consumer或Fetch-follower的请求速率(请求次数/秒)

Mbean名:"kafka.network":name="{Produce|Fetch-consumer|Fetch-follower}-RequestsPerSec",type="RequestMetrics"

正常的值:

 

描述:所有的topic的流出数据速率(字节/秒)

Mbean名: "kafka.server":name="AllTopicsBytesOutPerSec",type="BrokerTopicMetrics"

正常的值:

 

描述:刷日志的速率和耗时

Mbean名: "kafka.log":name="LogFlushRateAndTimeMs",type="LogFlushStats"

正常的值:

 

描述:正在做复制的partition的数量(|ISR| < |all replicas|)

Mbean名:"kafka.server":name="UnderReplicatedPartitions",type="ReplicaManager"

正常的值:0

 

描述:当前的broker是否为controller

Mbean名:"kafka.controller":name="ActiveControllerCount",type="KafkaController"

正常的值:在集群中只有一个broker的这个值为1

 

描述:选举leader的速率

Mbean名:"kafka.controller":name="LeaderElectionRateAndTimeMs",type="ControllerStats"

正常的值:如果有broker挂了,此值非0

 

描述:Unclean的leader选举速率

Mbean名:"kafka.controller":name="UncleanLeaderElectionsPerSec",type="ControllerStats"

正常的值:0

 

描述:该broker上的partition的数量

Mbean名: "kafka.server":name="PartitionCount",type="ReplicaManager"

正常的值:应在各个broker中平均分布

 

描述:Leader的replica的数量

Mbean名: "kafka.server":name="LeaderCount",type="ReplicaManager"

正常的值:应在各个broker中平均分布

 

描述:ISR的收缩(shrink)速率

Mbean名:"kafka.server":name="ISRShrinksPerSec",type="ReplicaManager"

正常的值:如果一个broker挂掉了,一些partition的ISR会收缩。当那个broker重新起来时,一旦它的replica完全跟上,ISR会扩大(expand)。除此之外,正常情况下,此值和下面的扩大速率都是0。

 

描述:ISR的扩大(expansion)速率

Mbean名: "kafka.server":name="ISRExpandsPerSec",type="ReplicaManager"

正常的值:参见ISR的收缩(shrink)速率

 

描述:follower落后leader replica的最大的消息数量

Mbean名:"kafka.server":name="([-.\w]+)-MaxLag",type="ReplicaFetcherManager"

正常的值:小于replica.lag.max.messages

 

描述:每个follower replica落后的消息速率

Mbean名:"kafka.server":name="([-.\w]+)-ConsumerLag",type="FetcherLagMetrics"

正常的值:小于replica.lag.max.messages

 

描述:等待producer purgatory的请求数

Mbean名:"kafka.server":name="PurgatorySize",type="ProducerRequestPurgatory"

正常的值:如果ack=-1,应为非0值

 

描述:等待fetch purgatory的请求数

Mbean名:"kafka.server":name="PurgatorySize",type="FetchRequestPurgatory"

正常的值:依赖于consumer的fetch.wait.max.ms的设置

 

描述:一个请求(producer,Fetch-Consumer,Fetch-Follower)耗费的所有时间

Mbean名:"kafka.network":name="{Produce|Fetch-Consumer|Fetch-Follower}-TotalTimeMs",type="RequestMetrics"

正常的值:包括了queue, local, remote和response send time

 

描述:请求(producer,Fetch-Consumer,Fetch-Follower)在请求队列中的等待时间

Mbean名:"kafka.network":name="{Produce|Fetch-Consumer|Fetch-Follower}-QueueTimeMs",type="RequestMetrics"

正常的值:

 

描述:请求(producer,Fetch-Consumer,Fetch-Follower)在leader处理请求花的时间

Mbean名:"kafka.network":name="{Produce|Fetch-Consumer|Fetch-Follower}-LocalTimeMs",type="RequestMetrics"

正常的值:

 

描述:请求(producer,Fetch-Consumer,Fetch-Follower)等待follower花费的时间

Mbean名:"kafka.network":name="{Produce|Fetch-Consumer|Fetch-Follower}-RemoteTimeMs",type="RequestMetrics"

正常的值:producer的ack=-1时,非0才正常

 

描述:发送响应花费的时间

Mbean名:"kafka.network":name="{Produce|Fetch-Consumer|Fetch-Follower}-ResponseSendTimeMs",type="RequestMetrics"

正常的值:

 

描述:consumer落后producer的消息数量

Mbean名:"kafka.consumer":name="([-.\w]+)-MaxLag",type="ConsumerFetcherManager"

正常的值:

 

建议对GC耗时和其他参数和诸如系统CPU,I/O时间等等进行监控。在client端,建议对"消息数量/字节数"的速率(全局的和对于每一个topic),请求的"速率/大小/耗时"进行监控。还有consumer端,所有partition的最大的落后情况和最小的fetch请求的速率。consumer为了能跟上,最大落后数量需要少于一个threshold并且最小fetch速率需要大于0.

转载于:https://www.cnblogs.com/heidsoft/p/7697898.html

你可能感兴趣的文章
[故障解决]Mysql爆出ERROR 1044 (42000)的错误怎么办?
查看>>
MySQL之数据库对象查看工具mysqlshow
查看>>
关于大学生玩网络游戏的调查问卷
查看>>
ubuntu安装nodejs
查看>>
数据类型之Integer与int
查看>>
转载:ASP.NET在后台代码实现个功能,根据选择提示用户是否继续执行操作
查看>>
[Angularjs]锚点操作服务$anchorScroll
查看>>
静态代理设计与动态代理设计
查看>>
uva-10152-乌龟排序
查看>>
ThreadLocal源码剖析
查看>>
每天一个linux命令(12):more命令
查看>>
奈奎斯特采样定理:
查看>>
智能商业大会构造信息化交流平台
查看>>
Java笔试之Singleton
查看>>
android自动化框架简要剖析(一):运行原理+基本框架
查看>>
处理测试环境硬盘爆满
查看>>
JS进阶之---函数,立即执行函数
查看>>
用ASP生成RSS
查看>>
Python函数积累
查看>>
CentOS7+CDH5.14.0安装全流程记录,图文详解全程实测-8CDH5安装和集群配置
查看>>