首页 > 代码库 > KafkaOffsetMonitor监控

KafkaOffsetMonitor监控

介绍

  KafkaOffsetMonitor是有由Kafka开源社区提供的一款Web管理界面,这个应用程序用来实时监控Kafka服务的Consumer以及它们所在的Partition中的Offset,你可以通过浏览当前的消费者组,并且每个Topic的所有Partition的消费情况都可以观看的一清二楚。它让我们很直观的知道,每个Partition的Message是否消费掉,有木有阻塞等等。

  这个Web管理平台保留的Partition、Offset和它的Consumer的相关历史数据,我们可以通过浏览Web管理的相关模块,清楚的知道最近一段时间的消费情况。

  该Web管理平台有以下功能:

  1.Consumer的消费监控,并列出每个ConsumerOffset数据

  2.保护消费者组列表信息

  3.每个Topic的所有Partition列表包含:TopicPidOffsetLogSizeLag以及Owner等等

  4.浏览查阅Topic的历史消费信息

下载

  GitHub上面有源码的jar包,放到对应的目录就可以了,由于我们使用新版本的kafka,所以也要使用最新的代码,在kafka中国社区可以下载最新的0.3的版本。地址:http://pan.baidu.com/s/1kUZJrCV

安装部署

  KafkaOffsetMonitor的安装部署较为简单,所有的资源都打包到一个JAR文件中了,因此,直接运行即可,省去了我们去配置。这里我们可以新建一个目录单独用于Kafka的监控目录,我这里新建一个kafka_monitor文件目录,然后我们在准备启动脚本

脚本内容如下所示:

java -cp KafkaOffsetMonitor-assembly-0.3.0-SNAPSHOT.jar                 
  com.quantifind.kafka.offsetapp.OffsetGetterWeb   --offsetStorage kafka   --zk localhost:2181   --port 7070   --refresh 10.seconds   --retain 2.days
 
启动方式2,创建脚本,因为您可能不是一个kafka集群。用脚本可以启动多个。
nohup java -Xms512M -Xmx512M -Xss1024K -XX:PermSize=256m -XX:MaxPermSize=512m 
    -cp KafkaOffsetMonitor-assembly-0.3.0-SNAPSHOT.jar     
    com.quantifind.kafka.offsetapp.OffsetGetterWeb --offsetStorage kafka --zk 127.0.0.1:2181 --port 8080 --refresh 10.seconds --retain 2.days 1>mobile-logs/stdout.log 2>mobile-logs/stderr.log &

 

各个参数的含义:
  • offsetStorage:有效的选项是"zookeeper","kafka","storm"。0.9版本以后,offset存储的位置在kafka。
  • zk: zookeeper的地址
  • prot 端口号
  • refresh 刷新频率,更新到DB。
  • retain 保留DB的时间
  • dbName 在哪里存储记录(默认‘offsetapp‘)

启动

  • 步骤1:启动ZK(集群配置依次启动)
  • 步骤2:启动Kafka服务(详情见kakfa环境搭建文档)
  • 步骤3:启动Web监控服务(按照安装部署脚本执行)

运行

消费组列表

技术分享

 

 

 

 

 

 

消费组Topic列表

技术分享

 

 

 

 

 

 

 

 

 

 

 

topic的历史位置

技术分享
 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Offset存储位置

  kafka能灵活地管理offset,可以选择任意存储和格式来保存offset。KafkaOffsetMonitor目前支持以下流行的存储格式。

  • kafka0.8版本以前,offset默认存储在zookeeper中(基于Zookeeper)
  • kafka0.9版本以后,offset默认存储在内部的topic中(基于Kafka内部的topic)
  • Storm Kafka Spout(默认情况下基于Zookeeper)

  KafkaOffsetMonitor每个运行的实例只能支持单一类型的存储格式。

 

KafkaOffsetMonitor监控