来源
KafkaOffsetMonitor是一个可以用于监控Kafka的Topic及Consumer消费状况的工具,其配置和使用特别的方便。源项目Github地址为:https://github.com/quantifind/KafkaOffsetMonitor。
最简单的使用方式是从Github上下载一个最新的KafkaOffsetMonitor-assembly-0.2.1.jar,上传到某服务器上,然后执行一句命令就可以运行起来。但是在使用过程中有可能会发现页面反应缓慢或者无法显示相应内容的情况。据说这是由于jar包中的某些js等文件需要连接到网络,或者需要翻墙导致的。网上找的一个修改版的KafkaOffsetMonitor对应jar包,可以完全在本地运行,经过测试效果不错。下载地址是:http://pan.baidu.com/s/1ntzIUPN,在此感谢一下贡献该修改版的原作者。
1、KafkaOffsetMonitor的使用
因为完全没有安装配置的过程,所以直接从KafkaOffsetMonitor的使用开始。
将KafkaOffsetMonitor-assembly-0.2.0.jar上传到服务器后,可以新建一个脚本用于启动该应用。脚本内容如下:
java -cp KafkaOffsetMonitor-assembly-0.2.0.jar \
com.quantifind.kafka.offsetapp.OffsetGetterWeb \
--zk m000:2181,m001:2181,m002:2181 \
--port 8088 \
--refresh 10.seconds \
--retain 2.days
各参数的作用可以参考一下Github上的描述:
- com.quantifind.kafka.offsetapp.OffsetGetterWeb是需要加载jar包的类,写正确就行
- offsetStorage valid options are ”zookeeper”, ”kafka” or ”storm”. Anything else falls back to ”zookeeper”
- zk the ZooKeeper hosts指的是zookeeper的IP和端口号(必须写对,一般没有修改的话,直接用locaohost:2181即可,要看是否修改,请在查看config\server.properties里面,zookeeper.connect=localhost:2181)
- port on what port will the app be available指的是KafkaOffsetMonitor访问的端口号,即监控kafka的端口号(当前系统没有用到的端口号)
- 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’) - kafkaOffsetForceFromStart only applies to ”kafka” format. Force KafkaOffsetMonitor to scan the commit messages from start (see notes below)
- stormZKOffsetBase only applies to ”storm” format. Change the offset storage base in zookeeper, default to ”/stormconsumers” (see notes below)
- pluginsArgs additional arguments used by extensions (see below)
在KafkaOffsetMonitor-assembly-0.2.0.jar所在目录下运行启动代码,即使小伙伴配置配置kafka环境变量也必须如此,因为jar包就放在该目录下,否则会报错:加载不到主类com.quantifind.kafka.offsetapp.OffsetGetterWeb
启动后,访问m000:8088端口,可以看到如下页面:
2、对KafkaOffsetMonitor进行测试
2.1、简单的Producer
2.1.1、新建一个Topic
首先为本次试验新建一个Topic,命令如下:
bin/kafka-topics.sh \
--create \
--zookeeper 1:2181 \
--replication-factor 1 \
--partition 3 \
--topic kafkamonitor-simpleproducer