Apache Kafka監控之KafkaOffsetMonitor

五柳-先生發表於2015-12-09

當你將Kafka叢集部署之後,你可能需要知道當前訊息佇列的增長以及消費情況,這時候你就得需要監控它。今天我這裡推薦兩款Kafka開源的監控系統:KafkaOffsetMonitor和Kafka Web Console。
  KafkaOffsetMonitor是用來實時監控Kafka叢集的consumers以及它們在partition中的offset(偏移量)。
  你可以瀏覽當前的訊息消費者組,每個topic佇列的所有partition的消費情況。這其實是很有用得,從這些監控中你可以很快地知道每個partition中的訊息是否很快被消費以及相應的佇列訊息增長速度等資訊。這些可以debug kafka的producers和consumers,你完全知道你的系統將會發生什麼。
  這個web管理平臺保留的partition offset和consumer滯後的歷史資料(具體資料儲存多少天我們可以在啟動的時候配置),所以你可以很輕易瞭解這幾天consumer消費情況。
  KafkaOffsetMonitor這款軟體是用Scaka程式碼編寫的,訊息等歷史資料是儲存在名為offsetapp.db資料庫檔案中,該資料庫是SQLLite檔案,非常的輕量級。雖然我們可以在啟動KafkaOffsetMonitor程式的時候指定資料更新的頻率和資料儲存的時間,但是不建議更新很頻繁,或者儲存大量的資料,因為在KafkaOffsetMonitor圖形展示的時候會出現影象展示過慢,或者是直接導致記憶體溢位了。所有的關於訊息的偏移量、kafka叢集的臺數等資訊都是從Zookeeper中獲取到的,日誌大小是通過計算得到的。
  可以到官網下載KafkaOffsetMonitor原始碼或者直接下載好編譯好的檔案,下面是編譯KafkaOffsetMonitor程式的命令:

1 # sbt/sbt assembly

編譯完之後,將會在KafkaOffsetMonitor根目錄下生成一個類似KafkaOffsetMonitor-assembly-0.2.1-SNAPSHOT.jar的jar檔案。這個檔案包含了所有的依賴,我們可以直接啟動它:

1 # java -cp KafkaOffsetMonitor-assembly-0.2.1-SNAPSHOT.jar \
2      com.quantifind.kafka.offsetapp.OffsetGetterWeb \
3      --zk zk-server1,zk-server2 \
4      --port 8080 \
5      --refresh 10.seconds \
6      --retain 2.days

各個引數的含義:

1 zk the ZooKeeper hosts
2 port on what port will the app be available
3 refresh how often should the app refresh and store a point in the DB
4 retain how long should points be kept in the DB
5 dbName where to store the history (default 'offsetapp')

這樣將會在8080埠上訪問該監控:


尊重原創,轉載請註明: 轉載自過往記憶(http://www.iteblog.com/)
本文連結地址: 《Apache Kafka監控之KafkaOffsetMonitor》(http://www.iteblog.com/archives/1083)

相關文章