Kafka web监控KafkaOffsetMonitor
- kafka 监控工具
- KafkaOffsetMonitor说明
- KafkaOffsetMonitor功能
- KafkaOffsetMonitor下载安装
- KafkaOffsetMonitor启动命令解析
- KafkaOffsetMonitor安装过程中遇到的问题
kafka 监控工具
kafka 网上流传最多的有三个监控工具:
- Kafka Web Conslole
程序运行后,会定时去读取kafka集群分区的日志长度,读取完毕后,连接没有正常释放,一段时间后产生大量的socket连接,导致网络堵塞,所以不建议使用。 - Kafka Manager
雅虎开源的一个监控工具,可以用来监控多个集群。 - KafkaOffsetMonitor
相对上面来说,这个工具耦合性比较低,单用于监控比较适合而且部署很简单。
注意:kafka新的版本offset存储在自己的一个topic,不像老版本是存在zookeeper里面,所以用KafkaOffsetMonitor2.x的版本监控会有问题,根本监控不到数据,所以最好在github上面下载最新的版本自己编译,注意jdk版本。
KafkaOffsetMonitor说明
KafkaOffsetMonitor是用来实时监控你kafka服务的consumer以及他们在partition中的offset(偏移)。你可以浏览当前的消费者组,每个topic的所有partition的消费情况都可以一览无余。这其实是很有用的,从这里你很快知道每个partition的message是否很快被消费(没有阻塞)。这个web管理平台保留的partition offset和consumer滞后的历史数据,所以你可以很轻易了解这几天consumer消费情况。
KafkaOffsetMonitor功能
- 从标题都可以看出来,Kafka Offset Monitor,是对consumer消费情况进行监控,并能列出每个consumer offset,滞后数据。
- 消费者组列表
- 每个topic的所有parition列表(topic,pid,offset,logSize,lag,owner)
- 查看topic的历史消费信息.
KafkaOffsetMonitor下载安装
- 下载软件包:
github地址(0.2.1版本): 点击下载 - 创建kafka监控目录 (此处我创建的监控目录为:D:\ruanjian\mydata\kafkamonitorlogs )
- 上传jar包到kafka监控目录
- 启动kafka监控
(1) 执行如下语句启动kafka监控
进入KafkaOffsetMonitor-assembly-0.2.1.jar所在的目录,按下Shift+右键,选择“打开命令窗口”选项,打开命令行窗口,执行下面启动kafka监控命令
java -Xms512M -Xmx512M -Xss1024K -XX:PermSize=256m -XX:MaxPermSize=512m -cp KafkaOffsetMonitor-assembly-0.2.1.jar com.quantifind.kafka.offsetapp.OffsetGetterWeb --zk 127.0.0.1:2181 --port 8987 --refresh 10.seconds --retain 7.days 1>D:/ruanjian/mydata/kafkamonitorlogs/stdout.log 2>D:/ruanjian/mydata/kafkamonitorlogs/stderr.log
(2) 启动停止脚本
启动脚本(start.sh):
进入KafkaOffsetMonitor-assembly-0.2.1.jar所在的目录,新建start.sh文件,文件内容如下:
#!/bin/bash
java -Xms512M -Xmx512M -Xss1024K -XX:PermSize=256m -XX:MaxPermSize=512m -cp KafkaOffsetMonitor- assembly-0.2.1.jar com.quantifind.kafka.offsetapp.OffsetGetterWeb --zk 127.0.0.1:2181 --port 8987 --refresh 10.seconds --retain 7.days 1>D:/ruanjian/mydata/kafkamonitorlogs/stdout.log 2>D:/ruanjian/mydata/kafkamonitorlogs/stderr.log
然后双击start.sh文件
- 启动之后查看web界面
访问地址:安装服务器的ip:8987(端口)
KafkaOffsetMonitor启动命令解析
- com.quantifind.kafka.offsetapp.OffsetGetterWeb:需要加载jar包的类,写正确就行。
- –zk 127.0.0.1:2181——指的是zookeeper的IP和端口号,可以为多个用逗号隔开(如:–zk 10.104.109.176:2181,10.104.86.238:2182,10.104.122.21:2181)。
- –port 8987——指的是KafkaOffsetMonitor访问的端口号,即监控kafka的端口号。
- –refresh 10.seconds——10秒一刷新。
- –retain 7.days——http://localhost:8987页面保持7天。
KafkaOffsetMonitor安装过程中遇到的问题
(1) http://localhost:8987页面无内容加载(如下图)
问题原因:报错说angular.js找不到
解决方案:找到KafkaOffsetMonitor-assembly-0.2.1.jar的jar包下 \offsetapp\index.html,编辑这个index.html,
把引入augular开头的三个js文件资源,改成:
<script src="//cdn.static.runoob.com/libs/angular.js/1.4.6/angular.min.js"></script>
<script src="//cdn.static.runoob.com/libs/angular.js/1.4.6/angular-route.js"></script>
<script src="//cdn.static.runoob.com/libs/angular.js/1.4.6/angular-resource.js"></script>
改之前:
改之后: