KafkaOffsetMonitor raft版:监控消费者和延迟的队列

半兽人 发表于: 2021-11-30   最后更新时间: 2021-12-09 09:53:58  
{{totalSubscript}} 订阅, 1,470 游览

一个小web应用程序来监视kafka消费者的进度和延迟队列。

KafkaOffsetMonitor是用来实时监控Kafka集群中的consumer以及在队列中的位置(偏移量)。

你可以查看当前的消费者组,每个topic队列的所有partition的消费情况。可以很快地知道每个partition中的消息是否很快被消费以及相应的队列消息增长速度等信息。这些可以debug kafka的producer和consumer,你完全知道你的系统将会发生什么。

KafkaOffsetMonitor raft特点:

  • 轻量级,仅仅用于查询
  • 安全性,提供给任何开发人员

支持kafka的版本

  • kafka raft >= 2.8

并不向下兼容

消费者组列表

KafkaOffsetMonitor Consumer List

消费组的topic列表

KafkaOffsetMonitor Topic List

图中参数含义解释如下:

  • topic:创建时topic名称
  • partition:分区编号
  • offset:表示该parition已经消费了多少条message
  • logSize:表示该partition已经写了多少条message
  • Lag:表示有多少条message没有被消费。
  • Owner:表示消费者
  • IP:消费者IP
  • ClientId:消费者客户号

下载

可以到github下载KafkaOffsetMonitor源码。

https://github.com/orchome/KafkaOffsetMonitor

编译KafkaOffsetMonitor命令:

mvn -Dmaven.test.skip=true -U package

不过不建议你自己去下载,因为编译的jar包里引入的都是外部的css和js,所以打开必须联网,都是国外的地址,你编译的时候还要修改js路径,我已经搞定了,你直接下载就好了。

版本 下载
1.0.0 KafkaOffsetMonitor

启动

编译完之后,将会在KafkaOffsetMonitor根目录下生成一个类似KafkaOffsetMonitor-1.0.jar的jar文件。这个文件包含了所有的依赖,我们可以直接启动它:

java -jar KafkaOffsetMonitor-1.0.jar \
     --broker-list=localhost:9092 \
     --server.port=8080

各个参数的含义:

  • broker-list:kafka地址。
  • server.port 端口号

其他

更新于 2021-12-09
在线,1小时前登录

七点三十 1月前

安装完毕后,监控页面上,显示了存在的consumer groups的信息,但是点击某个consumer组的详细信息,consumer offsets下没有数据显示,是为什么阿?kafka集群是3.3.1版本,kraft启动

半兽人 -> 七点三十 1月前

我也发现了,命令行执行的没显示,其他的可以显示。

七点三十 -> 半兽人 1月前

大佬,那这软件后续会更新吗?

半兽人 -> 七点三十 1月前

会的,把遇到的问题、或需要的功能都留言给我,我统一更新。

Panda 3月前

执行如下命令之后:

java -jar KafkaOffsetMonitor-1.0.jar \
     --broker-list=localhost:9092 \
     --server.port=8080

页面可以正常访问,但是一直显示loading,然后服务端:

ERROR 6934 --- [nio-8787-exec-2] o.a.c.c.C.[.[.[/].[dispatcherServlet]    : Servlet.service() for servlet [dispatcherServlet] in context with path [] threw exception [Request processing failed; nested exception is java.lang.IllegalStateException: java.util.concurrent.ExecutionException: org.apache.kafka.common.errors.TimeoutException: Timed out waiting for a node assignment. Call: listTopics] with root cause

org.apache.kafka.common.errors.TimeoutException: Timed out waiting for a node assignment. Call: listTopics

kafka使用SASL/PLAIN认证

半兽人 -> Panda 3月前

1、目前监控不支持任何安全策略。
2、确保kafka启动成功。
3、确保监控和kafka在同一台机器。

Panda -> 半兽人 3月前
  1. kafka 启动承成功了,可以正常收发消息
  2. 监控和kafka在同一台机器,ip 地址也是一样
半兽人 -> Panda 3月前

我刚才漏了一条,你刷新下。

Panda -> 半兽人 3月前

了解,后续可以支持上安全策略么

半兽人 -> Panda 3月前

会的,有需求,就会排期加上。

蜗牛 8月前

后续会有历史监控数据吗

半兽人 -> 蜗牛 8月前

会的

蜗牛 -> 半兽人 8月前

大概什么时候会出呢,期待

比比卡 10月前

不支持监控吗?或者怎么对接prometheus?

查看kafka更多相关的文章或提一个关于kafka的问题,也可以与我们一起分享文章
提问