kafka监控指标kafka.log:type=LogFlushStats,name=LogFlushRateAndTimeMs;取不到值,在jconsole也找不到

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了kafka监控指标kafka.log:type=LogFlushStats,name=LogFlushRateAndTimeMs;取不到值,在jconsole也找不到相关的知识,希望对你有一定的参考价值。

kafka.server:type=FetcherLagMetrics,name=ConsumerLag,clientId=([-.\w]+),topic=([-.\w]+),partition=([0-9]+);kafka.server:type=ProducerRequestPurgatory,name=PurgatorySize;kafka.server:type=FetchRequestPurgatory,name=PurgatorySize;kafka.consumer:type=ConsumerFetcherManager,name=MaxLag,clientId=([-.\w]+) 这些也取不到,求大神帮忙。
用JMX监控

参考技术A kafka监控
kafka-web-console
https://github.com/claudemamo/kafka-web-console
部署sbt:
http://www.scala-sbt.org/0.13/tutorial/Manual-Installation.html
http://www.scala-sbt.org/release/tutorial/zh-cn/Installing-sbt-on-Linux.html
KafkaOffsetMonitor
https://github.com/quantifind/KafkaOffsetMonitor/releases/tag/v0.2.0

java -cp KafkaOffsetMonitor-assembly-0.2.0.jar com.quantifind.kafka.offsetapp.OffsetGetterWeb --zk localhost:12181 --port 8080 --refresh 5.minutes --retain 1.day
kafka 监控之Mx4jLoader
源码未做任何修改,在lib下添加jar包mx4j-tools-3.0.1
启动server之后访问 ip:8082
/**
* If mx4j-tools is in the classpath call maybeLoad to load the HTTP interface of mx4j.
*
* The default port is 8082. To override that provide e.g. -Dmx4jport=8083
* The default listen address is 0.0.0.0. To override that provide -Dmx4jaddress=127.0.0.1
* This feature must be enabled with -Dmx4jenable=true
*
* This is a Scala port of org.apache.cassandra.utils.Mx4jTool written by Ran Tavory for CASSANDRA-1068
* */
JMX监控指标参数列表如下:

参数
Mbean名称
说明

Message in rate "kafka.server":name="AllTopicsMessagesInPerSec",type="BrokerTopicMetrics" 所有topic消息(进出)流量
Byte in rate "kafka.server":name="AllTopicsBytesInPerSec",type="BrokerTopicMetrics"
Request rate "kafka.network":name="Produce|Fetch-consumer|Fetch-follower-RequestsPerSec",type="RequestMetrics"
Byte out rate "kafka.server":name="AllTopicsBytesOutPerSec",type="BrokerTopicMetrics"
Log flush rate and time "kafka.log":name="LogFlushRateAndTimeMs",type="LogFlushStats"
# of under replicated partitions (|ISR| < |all replicas|) "kafka.server":name="UnderReplicatedPartitions",type="ReplicaManager" 0
Is controller active on broker "kafka.controller":name="ActiveControllerCount",type="KafkaController" only one broker in the cluster should have 1
Leader election rate "kafka.controller":name="LeaderElectionRateAndTimeMs",type="ControllerStats" non-zero when there are broker failures
Unclean leader election rate "kafka.controller":name="UncleanLeaderElectionsPerSec",type="ControllerStats" 0
Partition counts "kafka.server":name="PartitionCount",type="ReplicaManager" mostly even across brokers
Leader replica counts "kafka.server":name="LeaderCount",type="ReplicaManager" mostly even across brokers
ISR shrink rate "kafka.server":name="ISRShrinksPerSec",type="ReplicaManager" If a broker goes down, ISR for some of the partitions will shrink. When that broker is up again, ISR will be expanded once the replicas are fully caught up. Other than that, the expected value for both ISR shrink rate and expansion rate is 0.
ISR expansion rate "kafka.server":name="ISRExpandsPerSec",type="ReplicaManager" See above
Max lag in messages btw follower and leader replicas "kafka.server":name="([-.\w]+)-MaxLag",type="ReplicaFetcherManager" 副本消息滞后数量
Lag in messages per follower replica "kafka.server":name="([-.\w]+)-ConsumerLag",type="FetcherLagMetrics" 副本消息滞后数量
Requests waiting in the producer purgatory "kafka.server":name="PurgatorySize",type="ProducerRequestPurgatory"
Requests waiting in the fetch purgatory "kafka.server":name="PurgatorySize",type="FetchRequestPurgatory"
Request total time "kafka.network":name="Produce|Fetch-Consumer|Fetch-Follower-TotalTimeMs",type="RequestMetrics"
Time the request waiting in the request queue "kafka.network":name="Produce|Fetch-Consumer|Fetch-Follower-QueueTimeMs",type="RequestMetrics"
Time the request being processed at the leader "kafka.network":name="Produce|Fetch-Consumer|Fetch-Follower-LocalTimeMs",type="RequestMetrics"
Time the request waits for the follower "kafka.network":name="Produce|Fetch-Consumer|Fetch-Follower-RemoteTimeMs",type="RequestMetrics"
Time to send the response "kafka.network":name="Produce|Fetch-Consumer|Fetch-Follower-ResponseSendTimeMs",type="RequestMetrics"
Number of messages the consumer lags behind the producer by "kafka.consumer":name="([-.\w]+)-MaxLag",type="ConsumerFetcherManager"

追问

没懂。。。

使用Kafka Assistant监控Kafka关键指标

使用Kafka Assistant监控Kafka关键指标

使用Kafka时,我们比较关心下面这些常见指标。 Kafka Assistant下载地址:​​http://www.redisant.cn/ka​

broker度量指标

活跃控制器数量

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

Kafka Assistant提供了对此指标的监控

使用Kafka

请求处理器空闲率

Kafka 使用了两个线程池来处理客户端的请求:网络处理器线程池和请求处理器线程池。 网络处理器线程池负责通过网络读入和写出数据。这里没有太多的工作要做,也就是说, 不用太过担心这些线程会出现问题。请求处理器线程池负责处理来自客户端的请求,包括 从磁盘读取消息和往磁盘写入消息。因此,broker 负载的增长对这个线程池有很大的影响。

Kafka Assistant 通过每隔一段时间对此指标进行采样,绘制了处理器空闲率的走势

使用Kafka

主题流入字节

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

kafka Assistant 可以监控自broker启动以来,流出的字节总数。一分钟的平均速率,五分钟的平均速率,十五分钟平均速率。

使用Kafka

主题流出字节

主题流出字节速率与流入字节速率类似,是另一个与规模增长有关的度量指标。流出字节速 率显示的是消费者从 broker 读取消息的速率。流出速率与流入速率的伸缩方式是不一样的, 这要归功于 Kafka 对多消费者客户端的支持。很多 Kafka 的流出速率可以达到流入速率的 6 倍!所以,单独对流出速率进行观察和走势分析是非常重要的。

主题流入的消息

之前介绍的字节速率以字节的方式来表示 broker 的流量,而消息速率则以每秒生成消息个 数的方式来表示流量,而且不考虑消息的大小。这也是一个很有用的生产者流量增长规模 度量指标。它也可以与字节速率一起用于计算消息的平均大小。与字节速率一样,该指标 也能反映集群的不均衡情况。

与主题流入和流出字节一样,Kafka Assistant也对此提供了监控。如下图所示:

使用Kafka

分区数量

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

首领数量

该度量指标表示 broker 拥有的首领分区数量。与 broker 的其他度量一样,该度量指标也应 该在整个集群的 broker 上保持均等。我们需要对该指标进行周期性地检查,并适时地发出 告警,即使在副本的数量和大小看起来都很完美的时候,它仍然能够显示出集群的不均衡 问题。因为 broker 有可能出于各种原因释放掉一个分区的首领身份,比如 Zookeeper 会话 过期,而在会话恢复之后,这个分区并不会自动拿回首领身份(除非启用了自动首领再均 衡功能)。在这些情况下,该度量指标会显示较少的首领分区数,或者直接显示为零。这 个时候需要运行一个默认的副本选举,重新均衡集群的首领。

离线分区

与非同步分区数量一样,离线分区数量也是一个关键的度量指标(表 10-10)。该度量只能 由集群控制器提供(对于其他 broker 来说,该指标的值为零),它显示了集群里没有首领 的分区数量。

Java虚拟机监控

除了 broker 的度量指标外,还应该对服务器提供的一些标准度量进行监控,包括 Java 虚拟

机(JVM)。如果 JVM 频繁发生垃圾回收,就会影响 broker 的性能,在这种情况下,就应 该得到告警。JVM 的度量指标还能告诉我们为什么 broker 下游的度量指标会发生变化。

使用Kafka

以上是关于kafka监控指标kafka.log:type=LogFlushStats,name=LogFlushRateAndTimeMs;取不到值,在jconsole也找不到的主要内容,如果未能解决你的问题,请参考以下文章

如何监控 Apache Kafka 指标?

Kafka快速入门——Kafka监控

Kafka快速入门——Kafka监控

滴滴开源Kafka集群指标监控与运维管控平台

几种常见的 Kafka 集群监控工具

几种常见的 Kafka 集群监控工具