天天看點

kaka-manager和kafka-offset-monitor的安裝和使用kafka-managerKafkaOffsetMonitor

打包好的資源

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的資料吞吐速率。

kaka-manager和kafka-offset-monitor的安裝和使用kafka-managerKafkaOffsetMonitor
kaka-manager和kafka-offset-monitor的安裝和使用kafka-managerKafkaOffsetMonitor

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)。

當然,你也可以把這個指令寫成腳本,儲存起來。

kaka-manager和kafka-offset-monitor的安裝和使用kafka-managerKafkaOffsetMonitor
kaka-manager和kafka-offset-monitor的安裝和使用kafka-managerKafkaOffsetMonitor