当前位置: 首页 > 图灵资讯 > 技术篇> Apache Kafka监控之KafkaOffsetMonitor

Apache Kafka监控之KafkaOffsetMonitor

来源:图灵教育
时间:2023-06-12 09:22:29

当你部署Kafka集群时,你可能需要知道当前消息队列的增长和消费,然后你需要监控它。今天,我推荐两个Kafka开源监控系统:KafkaofsetMonitor和Kafka Web Console。

Kafkaofsetmonitor是用于实时监控Kafka集群的consumers及其在partition中的offset(偏移量)。

您可以浏览当前消息消费者组,每个topic队列中所有partition的消费情况。事实上,这是非常有用的。从这些监控中,您可以快速了解每个活动中的消息是否很快被消耗,以及相应的队列消息的增长速度。这些都可以debug producers和kafkaconsumers,你完全知道你的系统会发生什么。

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

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

您可以在官方网站上下载KafkaofsetMonitor源码或直接下载编译文件。以下是编译KafkaofsetMonitor程序的命令:

1# sbt/sbt assembly

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

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

各参数的含义:

1zk the ZooKeeper hosts2port on what port will the app be available3refresh how often should the app refresh and store a point in the DB4retain how long should points be kept in the DB5dbName where to store the history (default 'offsetapp')

这将在8080端口访问监控:

ps:本博客的《Zookeeper Monitor集群监控开发上的CSS风格几乎都是从这里复制的。