介绍
KafkaOffsetMonitor是有由Kafka开源社区提供的一款Web管理界面,这个应用程序用来实时监控Kafka服务的Consumer以及它们所在的Partition中的Offset,你可以通过浏览当前的消费者组,并且每个Topic的所有Partition的消费情况都可以观看的一清二楚。它让我们很直观的知道,每个Partition的Message是否消费掉,有木有阻塞等等。
这个Web管理平台保留的Partition、Offset和它的Consumer的相关历史数据,我们可以通过浏览Web管理的相关模块,清楚的知道最近一段时间的消费情况。
该Web管理平台有以下功能:
1.对Consumer的消费监控,并列出每个Consumer的Offset数据
2.保护消费者组列表信息
3.每个Topic的所有Partition列表包含:Topic、Pid、Offset、LogSize、Lag以及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
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每个运行的实例只能支持单一类型的存储格式。