Apache Kafka 监控工具 KafkaOffsetMonitor

         搭建完kafka集群后,除了关注是否可以发送或者消费数据之外,最重要的是可以方便的了解整个集群的运行状况。当然我们可以直接使用ZK来获取信息,但是可用性真的不够给力。而恰好KafkaOffsetMonitor可以帮我们解决这一问题,最主要的是安装真的超级简单。

        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(其实就仅仅是一个jar)可以从官网直接下载编译得到,或者网上搜索一下即可,我用的是0.2.0版本。

      安装步骤如下:

      1. 在服务器上创建kafka-offset-monitor目录

      2. 把下载的KafkaOffsetMonitor-assembly-0.2.0.jar放进去

      3. 创建一个日志目录kafka-offset-console

      4. 编写一个启动脚本

      5. 启动

      启动脚本如下:

    #!/bin/bash  
    java -Xms512M -Xmx512M -Xss1024K -XX:PermSize=256m -XX:MaxPermSize=512m -cp KafkaOffsetMonitor-assembly-0.2.0.jar com.quantifind.kafka.offsetapp.OffsetGetterWeb --zk zk1:2181,zk2:2181,zk3:2181 --port 9091 --refresh 10.seconds --retain 7.days 1>kafka-offset-console/stdout.log 2>kafka-offset-console/stderr.log &  

     脚本中参数说明:

 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' )

这样就可以通过9091端口访问UI界面了。
Apache Kafka 监控工具 KafkaOffsetMonitor_第1张图片
  该图表示group_arch_tracklog1这个分组消费dhtrack-test的情况。
  topic:创建topic的名称
  partition:分区编号
  offset:该partition已经消费了多少条message
  logsize:该partition已经写入了多少条message
  lag:该partition未消费多少条message
  owner:gaipartition所属消费者


注意:当KafkaOffsetMonitor长时间运行后,JVM内存可能不够,导致页面操作响应过慢,可以调整JVM内存。




你可能感兴趣的:(Apache Kafka 监控工具 KafkaOffsetMonitor)