來源
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