欢迎关注大数据技术架构与案例微信公众号:过往记忆大数据
过往记忆博客公众号iteblog_hadoop
欢迎关注微信公众号:
过往记忆大数据

Apache Kafka监控之KafkaOffsetMonitor

当你将Kafka集群部署之后,你可能需要知道当前消息队列的增长以及消费情况,这时候你就得需要监控它。今天我这里推荐两款 Kafka 开源的监控系统:KafkaOffsetMonitor 和 Kafka Web Console。

KafkaOffsetMonitor是用来实时监控Kafka集群的consumers以及它们在partition中的offset(偏移量)。

你可以浏览当前的消息消费者组,每个topic队列的所有partition的消费情况。这其实是很有用得,从这些监控中你可以很快地知道每个partition中的消息是否很快被消费以及相应的队列消息增长速度等信息。这些可以debug kafka的producers和consumers,你完全知道你的系统将会发生什么。

这个web管理平台保留的partition offset和consumer滞后的历史数据(具体数据保存多少天我们可以在启动的时候配置),所以你可以很轻易了解这几天consumer消费情况。

KafkaOffsetMonitor这款软件是用Scaka代码编写的,消息等历史数据是保存在名为offsetapp.db数据库文件中,该数据库是SQLLite文件,非常的轻量级。虽然我们可以在启动KafkaOffsetMonitor程序的时候指定数据更新的频率和数据保存的时间,但是不建议更新很频繁,或者保存大量的数据,因为在KafkaOffsetMonitor图形展示的时候会出现图像展示过慢,或者是直接导致内存溢出了。所有的关于消息的偏移量、kafka集群的台数等信息都是从Zookeeper中获取到的,日志大小是通过计算得到的。

可以到官网下载KafkaOffsetMonitor源码或者直接下载好编译好的文件,下面是编译KafkaOffsetMonitor程序的命令:

# sbt/sbt assembly

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

# java -cp KafkaOffsetMonitor-assembly-0.2.1-SNAPSHOT.jar \
     com.quantifind.kafka.offsetapp.OffsetGetterWeb \
     --zk zk-server1,zk-server2 \
     --port 8080 \
     --refresh 10.seconds \
     --retain 2.days

各个参数的含义:

 zk the ZooKeeper hosts
 port on what port will the app be available
 refresh how often should the app refresh and store a point in the DB
 retain how long should points be kept in the DB
 dbName where to store the history (default 'offsetapp')

这样将会在8080端口上访问该监控:

ps:本博客的《Zookeeper Monitor集群监控开发》上面的CSS样式几乎都是从这里拷贝过去的。


如果想及时了解Spark、Hadoop或者Hbase相关的文章,欢迎关注微信公共帐号:iteblog_hadoop
本博客文章除特别声明,全部都是原创!
原创文章版权归过往记忆大数据(过往记忆)所有,未经许可不得转载。
本文链接: 【Apache Kafka监控之KafkaOffsetMonitor】(https://www.iteblog.com/archives/1083.html)
喜欢 (18)
分享 (0)
发表我的评论
取消评论

表情
本博客评论系统带有自动识别垃圾评论功能,请写一些有意义的评论,谢谢!
(1)个小伙伴在吐槽
  1. 大神,请教个问题。我最近也在用storm读取kafka中的数据。也是用的这个jar包监控kafka的数据消费。但是碰到个问题,我用kafka-console-consumer去消费的时候,我能通过监控看到消费的实时状态,但是当我用storm-kafka这个插件从kafka中读取数据的时候,只能获取到这个消费者,但是检测不到这个消费者的状态。我从zookeeper中看了一下,发现当我用kafka-console-consuemr消费的时候,在kafka/consumers/console-consumer-67302下面有[ids,owners,offsets]这三个znode,但是当我用java程序通过storm-kafka消费的时候在/kafka/consumer/consumername下面直接就是partition_0,partition_1这种了。没有偏移等znode。这个是为什么呢?应该怎么弄才能进行监控呢?

    future2016-07-23 15:34 回复