打包好的資源
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-console、kafka-manager和KafkaOffsetMonitor。其中,kafka-web-console已經停止更新,是以暫不考慮繼續使用。而kafka-manager則是有yahoo開源出來的項目,屬于商業級别的工具,是以功能最完善。
不幸的是,對于其安裝過程,這些項目的readme上都描述不是很清楚,有的部分也相當費時。是以,在這裡,我會介紹一下安裝步驟,并共享出打包好的檔案,可以省去大部分的下載下傳時間。
這些項目大都是基于PlayFramework的,是以,要求jdk1.8以上。低版本的jdk可能會出現運作錯誤
kafka-manager
首先,下載下傳并安裝sbt
wget http://dl.bintray.com/sbt/debian/sbt-..deb
sudo dpkg -i sbt-..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= bin/kafka-server-start.sh config/server-.properties
其中KAFKA_JMX_OPTS是用來定義JMX設定的環境變量,前面3個參數是預設參數,在這裡保持不變。JMX_PORT則是用來定義端口的,同時也是啟動JMX的開關。
當然,如果你的伺服器上已經部署好了DNS,不需要使用ip的話,就隻需要設定JMX_PORT就好了。
啟動好kafka叢集後,在執行bin/kafka-manager就可以開啟web界面了,端口預設為9000。啟動完成之後,需要手動添加cluster,同時設定kafka版本号以及一些可選的資訊,其中JMX的開關一定要打開,這樣才能夠擷取目前kafka的資料吞吐速率。
![](https://img.laitimes.com/img/9ZDMuAjOiMmIsIjOiQnIsISO4EDOxYDM4ETNyMDM2EDMy8CX0Vmbu4GZzNmLn9Gbi1yZtl2Lc9CX6MHc0RHaiojIsJye.jpg)
KafkaOffsetMonitor
KafkaOffsetMonitor功能上不及kafka-manager,但是它提供了圖形化的展示效果,是以,可以作為kafka-manager的補充工具。
KafkaOffsetMonitor其實也是需要打包的,不過這個項目的作者似乎考慮的比較周到,把打好的jar包在release中分享出來了,這樣一來,就省事很多了。
直接到release目錄下,找到最新(即第一個)的版本,然後找到該版本下的jar包,點選下載下傳即可。
下載下傳完成後,可以通過java指令執行:
java -cp KafkaOffsetMonitor-assembly-..jar \
com.quantifind.kafka.offsetapp.OffsetGetterWeb \
--offsetStorage kafka \
--zk zk-server1,zk-server2 \
--port \
--refresh .seconds \
--retain .days
其中,offsetStorage目前隻支援kaka,zk按照host1:port1,host2:port2…的格式去寫即可,port為開啟web界面的端口号,refresh為重新整理時間,retain為資料保留時間(機關seconds, minutes, hours, days)。
當然,你也可以把這個指令寫成腳本,儲存起來。