KafkaOffsetMonitor
- 此文章為轉(zhuǎn)載http://orchome.com/54浴麻,再此感謝作者掸掸。
- 是用來實(shí)時(shí)監(jiān)控Kafka集群中的consumer以及在隊(duì)列中的位置(偏移量)籍胯。
你可以查看當(dāng)前的消費(fèi)者組命咐,每個(gè)topic隊(duì)列的所有partition的消費(fèi)情況∈们洌可以很快地知道每個(gè)partition中的消息是否很快被消費(fèi)以及相應(yīng)的隊(duì)列消息增長速度等信息。這些可以debug kafka的producer和consumer贱纠,你完全知道你的系統(tǒng)將會發(fā)生什么峻厚。 - 這個(gè)web管理平臺保留的partition offset和consumer滯后的歷史數(shù)據(jù)(具體數(shù)據(jù)保存多少天我們可以在啟動的時(shí)候配置),所以你可以很輕易了解這幾天consumer消費(fèi)情況谆焊。
- KafkaOffsetMonitor這款軟件是用Scala代碼編寫的惠桃,消息等歷史數(shù)據(jù)是保存在名為offsetapp.db數(shù)據(jù)庫文件中,該數(shù)據(jù)庫是SQLLite文件,非常的輕量級辜王。雖然我們可以在啟動KafkaOffsetMonitor程序的時(shí)候指定數(shù)據(jù)更新的頻率和數(shù)據(jù)保存的時(shí)間劈狐,但是不建議更新很頻繁,或者保存大量的數(shù)據(jù)呐馆,因?yàn)樵贙afkaOffsetMonitor圖形展示的時(shí)候會出現(xiàn)圖像展示過慢肥缔,或者是直接導(dǎo)致內(nèi)存溢出了。
所有的關(guān)于消息的偏移量汹来、kafka集群的數(shù)量等信息都是從Zookeeper中獲取到的辫继,日志大小是通過計(jì)算得到的。
消費(fèi)者組列表
消費(fèi)組的topic列表
圖中參數(shù)含義解釋如下:
topic:創(chuàng)建時(shí)topic名稱partition:分區(qū)編號offset:表示該parition已經(jīng)消費(fèi)了多少條messagelogSize:表示該partition已經(jīng)寫了多少條messageLag:表示有多少條message沒有被消費(fèi)俗慈。Owner:表示消費(fèi)者Created:該partition創(chuàng)建時(shí)間Last Seen:消費(fèi)狀態(tài)刷新最新時(shí)間。
topic的歷史位置
Offset存儲位置
kafka能靈活地管理offset遣耍,可以選擇任意存儲和格式來保存offset闺阱。KafkaOffsetMonitor目前支持以下流行的存儲格式。
kafka0.8版本以前舵变,offset默認(rèn)存儲在zookeeper中(基于Zookeeper)
kafka0.9版本以后酣溃,offset默認(rèn)存儲在內(nèi)部的topic中(基于Kafka內(nèi)部的topic)
Storm Kafka Spout(默認(rèn)情況下基于Zookeeper)
KafkaOffsetMonitor每個(gè)運(yùn)行的實(shí)例只能支持單一類型的存儲格式。
下載
可以到github下載KafkaOffsetMonitor
源碼纪隙。
https://github.com/quantifind/KafkaOffsetMonitor
編譯KafkaOffsetMonitor命令:
sbt/sbt assembly
不過不建議你自己去下載赊豌,因?yàn)榫幾g的jar包里引入的都是外部的css和js,所以打開必須聯(lián)網(wǎng)绵咱,都是國外的地址碘饼,你編譯的時(shí)候還要修改js路徑,我已經(jīng)搞定了悲伶,你直接下載就好了艾恼。
百度云盤:https://pan.baidu.com/s/1kUZJrCV
啟動
編譯完之后,將會在KafkaOffsetMonitor根目錄下生成一個(gè)類似KafkaOffsetMonitor-assembly-0.3.0-SNAPSHOT.jar
的jar文件麸锉。這個(gè)文件包含了所有的依賴钠绍,我們可以直接啟動它:
java -cp KafkaOffsetMonitor-assembly-0.3.0-SNAPSHOT.jar \ com.quantifind.kafka.offsetapp.OffsetGetterWeb \ --offsetStorage kafka \ --zk zk-server1,zk-server2 \ --port 8080 \ --refresh 10.seconds \ --retain 2.days
啟動方式2,創(chuàng)建腳本花沉,因?yàn)槟赡懿皇且粋€(gè)kafka集群柳爽。用腳本可以啟動多個(gè)。
vim mobile_start_en.sh nohup java -Xms512M -Xmx512M -Xss1024K -XX:PermSize=256m -XX:MaxPermSize=512m -cp KafkaOffsetMonitor-assembly-0.3.0-SNAPSHOT.jar com.quantifind.kafka.offsetapp.OffsetGetterWeb --offsetStorage kafka --zk 127.0.0.1:2181 --port 8080 --refresh 10.seconds --retain 2.days 1>mobile-logs/stdout.log 2>mobile-logs/stderr.log &
各個(gè)參數(shù)的含義:
offsetStorage:有效的選項(xiàng)是"zookeeper","kafka","storm"碱屁。0.9版本以后磷脯,offset存儲的位置在kafka。
zk: zookeeper的地址
prot 端口號
refresh 刷新頻率娩脾,更新到DB争拐。
retain 保留DB的時(shí)間
dbName 在哪里存儲記錄(默認(rèn)'offsetapp')
作者:半獸人鏈接:http://orchome.com/54來源:OrcHome著作權(quán)歸作者所有。商業(yè)轉(zhuǎn)載請聯(lián)系作者獲得授權(quán),非商業(yè)轉(zhuǎn)載請注明出處架曹。