Kafka web监控KafkaOffsetMonitor

  • kafka 监控工具
  • KafkaOffsetMonitor说明
  • KafkaOffsetMonitor功能
  • KafkaOffsetMonitor下载安装
  • KafkaOffsetMonitor启动命令解析
  • KafkaOffsetMonitor安装过程中遇到的问题


kafka 监控工具

kafka 网上流传最多的有三个监控工具:

  1. Kafka Web Conslole
    程序运行后,会定时去读取kafka集群分区的日志长度,读取完毕后,连接没有正常释放,一段时间后产生大量的socket连接,导致网络堵塞,所以不建议使用。
  2. Kafka Manager
    雅虎开源的一个监控工具,可以用来监控多个集群。
  3. 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功能

  1. 从标题都可以看出来,Kafka Offset Monitor,是对consumer消费情况进行监控,并能列出每个consumer offset,滞后数据。
  2. 消费者组列表
  3. 每个topic的所有parition列表(topic,pid,offset,logSize,lag,owner)
  4. 查看topic的历史消费信息.

KafkaOffsetMonitor下载安装

  1. 下载软件包:
    github地址(0.2.1版本): 点击下载
  2. 创建kafka监控目录 (此处我创建的监控目录为:D:\ruanjian\mydata\kafkamonitorlogs )
  3. kafka 监控报警 kafka监控页面_kafka

  4. 上传jar包到kafka监控目录
  5. kafka 监控报警 kafka监控页面_kafka 监控报警_02

  6. 启动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

kafka 监控报警 kafka监控页面_java_03


(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文件

kafka 监控报警 kafka监控页面_jar_04

  1. 启动之后查看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页面无内容加载(如下图)

kafka 监控报警 kafka监控页面_kafka_05


问题原因:报错说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>

改之前:

kafka 监控报警 kafka监控页面_java_06


改之后:

kafka 监控报警 kafka监控页面_kafka 监控报警_07