Kafka监控--KafkaOffsetMonitor安装部署

KafkaOffsetMonitor安装部署

KafkaOffsetMonitor是有由Kafka开源社区提供的一款Web管理界面,这个应用程序用来实时监控Kafka服务的Consumer以及它们所在的Partition中的Offset,你可以通过浏览当前的消费者组,并且每个Topic的所有Partition的消费情况都可以观看的一清二楚。它让我们很直观的知道,每个Partition的Message是否消费掉,有木有阻塞等等。

这个Web管理平台保留的Partition、Offset和它的Consumer的相关历史数据,我们可以通过浏览Web管理的相关模块,清楚的知道最近一段时间的消费情况。

该Web管理平台有以下功能:

  • 对Consumer的消费监控,并列出每个Consumer的Offset数据
  • 保护消费者组列表信息
  • 每个Topic的所有Partition列表包含:Topic、Pid、Offset、LogSize、Lag以及Owner等等
  • 浏览查阅Topic的历史消费信息

环境:

部署本机 192.168.1.171

zk 192.168.1.110,192.168.1.112

下载:

在安装KafkaOffsetMonitor管理平台时,我们需要先下载其安装包,其资源可以在Github上找到

源码地址:

https://github.com/quantifind/KafkaOffsetMonitor

jar包地址:

https://github.com/quantifind/KafkaOffsetMonitor/releases/tag/v0.2.1

网络共享:

http://pan.baidu.com/s/1sj0YERV

安装部署

KafkaOffsetMonitor的安装部署较为简单,所有的资源都打包到一个JAR文件中了,因此,直接运行即可,省去了我们去配置。这里我们可以新建一个目录单独用于Kafka的监控目录,我这里新建一个kafka_monitor文件目录,然后我们在准备启动脚本,脚本内容如下所示:

java -cp KafkaOffsetMonitor-assembly-0.2.1.jar \

com.quantifind.kafka.offsetapp.OffsetGetterWeb \

--offsetStorage kafka

--zk zk-server1,zk-server2 \

--port 8080 \

--refresh 10.seconds \

--retain 2.days

解释下这条启动命令的含义,首先我们需要指明运行Web监控的类,然后需要用到ZooKeeper,所有要填写ZK集群信息,接着是Web运行端口,页面数据刷新的时间以及保留数据的时间值。

可以写个启动脚本:

vi start.sh

nohup java -cp ./KafkaOffsetMonitor-assembly-0.2.0.jar com.quantifind.kafka.offsetapp.OffsetGetterWeb --zk 192.168.1.10:2181,192.168.1.11:2181,192.168.1.6:2181 --port 8080 --refresh 10.seconds --retain 3.days

&

访问:

http://192.168.1.171:9001/

一些参数的含义如下:

Topic:创建Topic名称

Partition:分区编号

Offset:表示该Parition已经消费了多少Message

LogSize:表示该Partition生产了多少Message

Lag:表示有多少条Message未被消费

Owner:表示消费者

Created:表示该Partition创建时间

Last Seen:表示消费状态刷新最新时间

在运行KafkaOffsetMonitor的JAR包时,需要确保启动参数的配置正确,以免启动出错,另外,

Github的上的KafkaOffsetMonitor的JAR中的静态资源有些链接用到了Google的超链接,所有如果直接只用,若本地木有代理软件会启动出错,这里使用网络所提供的JAR,这个JAR是经过静态资源改版后重新编译的使用本地静态资源


部署

打好包好,在部署机器上解压,修改好配置文件,就可以运行了。

  • 解压
unzip kafka-manager-1.0-SNAPSHOT.zip
  • 修改conf/application.conf,把kafka-manager.zkhosts改为自己的zookeeper服务器地址
kafka-manager.zkhosts="192.168.1.10:2181,192.168.1.11:2181,192.168.1.6:2181"
  • 启动
cd kafka-manager-1.0-SNAPSHOT/bin ./kafka-manager -Dconfig.file=../conf/application.conf 
或者
./bin/kafka-manager -Dconfig.file=conf/application.conf -Dhttp.port=8080

查看帮助 和 后台运行:

./kafka-manager -h 
nohup ./kafka-manager -Dconfig.file=../conf/application.conf >/devull 2>&1&

默认http端口是9000,可以修改配置文件里的http.port的值,或者通过命令行参数传递:

./kafka-manager -Dhttp.port=9001

正常来说,play框架应该会自动加载conf/application.conf配置里的内容,但是貌似这个不起作用,要显式指定才行。

参考:https://github.com/yahoo/kafka-manager/issues/16

Open file

./bin/kafka-server-start.sh

to add text:

    export JMX_PORT=9703
    export "KAFKA_JMX_OPTS=-Dcom.sun.management.jmxremote=true
    -Dcom.sun.management.jmxremote.authenticate=false
    -Dcom.sun.management.jmxremote.ssl=false
    -Djava.rmi.server.hostname=192.168.1.22
    -Djava.net.preferIPv4Stack=true"

http://blog.csdn.net/dabokele/article/details/52373960

results for ""

    No results matching ""