打包好的资源
Kafka-manager-1.3.07
- 卷1: http://download.csdn.net/detail/hwz2311245/9475611
- 卷2: http://download.csdn.net/detail/hwz2311245/9475587
kafka-web-console-2.1.0
- 卷1: http://download.csdn.net/detail/hwz2311245/9475635
- 卷2: http://download.csdn.net/detail/hwz2311245/9475663

由于kafka本身不提供ui操作界面,操作起来只提供了有限的几个脚本,所以使用起来对其本身的运行状态无法感知。但是,kafka本身是和zookeeper相连的,而对应producer和consumer的状态保存也都是通过zookeeper完成的,因此,可以通过读取zookeeper中的信息来构建出kafka的状态。另外,kafka本身也提供了一个JMX服务端口,来供外界查询当前的状态。

这样一个明显的需求,自然就有很多开源工具已经实现了这样一系列功能。我找到的主要有三个:kafka-web-consolekafka-managerKafkaOffsetMonitor。其中,kafka-web-console已经停止更新,因此暂不考虑继续使用。而kafka-manager则是有yahoo开源出来的项目,属于商业级别的工具,因此功能最完善。

不幸的是,对于其安装过程,这些项目的readme上都描述不是很清楚,有的部分也相当费时。因此,在这里,我会介绍一下安装步骤,并共享出打包好的文件,可以省去大部分的下载时间。

这些项目大都是基于PlayFramework的,因此,要求jdk1.8以上。低版本的jdk可能会出现运行错误

kafka-manager

首先,下载并安装sbt

wget http://dl.bintray.com/sbt/debian/sbt-0.13.6.deb
sudo dpkg -i sbt-0.13.6.deb 
sudo apt-get update
sudo apt-get install sbt

然后对kaka-manager进行打包:

git clone https://github.com/yahoo/kafka-manager
cd kafka-manager
sbt clean dist

打包过程中会下载很多依赖包,且速度极慢(我用了几个小时才打包完),最后会在target/universal目录下生成zip文件。有了这个zip文件后,之后再使用就只需要有java支持就行了。打包好的kafka-manager已经上传到了csdn,链接在博文顶端,可自行下载使用。

下载并解压后,修改conf/application.conf中的kafka-manager.zkhosts="ip:port"即可,其他行可以删除。

另外,再启动kafka的时候也需要注意,必须加上通过设置JMX_PORT环境变量来启动kafka的jmx服务。另外,如果在部署kafka集群的时候,没有使用hostname而是使用的ip,那么一定要加上Djava.rmi.server.hostname来指定当前服务器的ip,其原理和kakfa中的advertised.host.name类似。

完整的命令示例如下:

KAFKA_JMX_OPTS="-Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.authenticate=false  -Dcom.sun.management.jmxremote.ssl=false -Djava.rmi.server.hostname=$ip" JMX_PORT=9997 bin/kafka-server-start.sh config/server-1.properties

其中KAFKA_JMX_OPTS是用来定义JMX设置的环境变量,前面3个参数是默认参数,在这里保持不变。JMX_PORT则是用来定义端口的,同时也是启动JMX的开关。

当然,如果你的服务器上已经部署好了DNS,不需要使用ip的话,就只需要设定JMX_PORT就好了。

启动好kafka集群后,在执行bin/kafka-manager就可以开启web界面了,端口默认为9000。启动完成之后,需要手动添加cluster,同时设置kafka版本号以及一些可选的信息,其中JMX的开关一定要打开,这样才能够获取当前kafka的数据吞吐速率。

broker信息

topci信息

KafkaOffsetMonitor

KafkaOffsetMonitor功能上不及kafka-manager,但是它提供了图形化的展示效果,因此,可以作为kafka-manager的补充工具。

KafkaOffsetMonitor其实也是需要打包的,不过这个项目的作者似乎考虑的比较周到,把打好的jar包在release中分享出来了,这样一来,就省事很多了。

直接到release目录下,找到最新(即第一个)的版本,然后找到该版本下的jar包,点击下载即可。

下载完成后,可以通过java命令执行:

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

其中,offsetStorage目前只支持kaka,zk按照host1:port1,host2:port2…的格式去写即可,port为开启web界面的端口号,refresh为刷新时间,retain为数据保留时间(单位seconds, minutes, hours, days)。

当然,你也可以把这个命令写成脚本,保存起来。

consumer消费的topic

offset历史记录

Logo

Kafka开源项目指南提供详尽教程,助开发者掌握其架构、配置和使用,实现高效数据流管理和实时处理。它高性能、可扩展,适合日志收集和实时数据处理,通过持久化保障数据安全,是企业大数据生态系统的核心。

更多推荐