1. 程式人生 > >Flume 知識點(六)Flume 的監控

Flume 知識點(六)Flume 的監控

簡述

使用 Flume 實時收集日誌的過程中,儘管有事務機制保證資料不丟失,但仍然需要時刻關注 Source、Channel、Sink 之間的訊息傳輸是否正常。
比如,SouceChannel 傳輸了多少訊息,ChannelSink 又傳輸了多少,兩處的訊息量是否偏差過大等等。

Flume 為我們提供了 Monitor 的機制:http://flume.apache.org/FlumeUserGuide.html#monitoring 通過Reporting 的方式,把過程中的Counter都打印出來。

型別

  • JMX Reporting
  • Ganglia Reporting
  • JSON Reporting
  • Custom Reporting

Ganglia Reporting

Flume 可以報告它的 metrics 到 ganglia3,只要你在啟動 Flume agent 的時候設定一些引數即可,也可以把這些引數設定在 flume-env.sh 配置檔案中。需要設定的引數如下,這些引數的字首如下Flume.monitoring:

  • -Dflume.monitoring.type:型別必須是ganglia
  • -Dflume.monitoring.pollFrequency: 預設值是60秒,flume向ganglia報告metrics的時間間隔
  • -Dflume.monitoring.isGanglia3: 預設是false,ganglia server的版本在3以上,flume 傳送的是ganglia3.1的資料格式

啟動flume Agent:

$ bin/flume-ng agent --conf-file example.conf --name a1 -Dflume.monitoring.type=ganglia -Dflume.monitoring.hosts=com.example:1234,com.example2:5455

JSON Reporting

Flume 也可以報告 JSON 格式的 report,為了開啟 JSON report,在 Flume 機器上啟動了一個 web server。需要在客戶端啟動時設定以下引數:
type 該元件的名稱,這裡設定為http
port 該服務監聽的埠,預設是41414

啟動flume Agent:

flume-ng agent --conf-file example.conf --name a1 -Dflume.monitoring.type=http -Dflume.monitoring.port=34545

然後通過http://

作者:studytime
原文:https://www.studytime.xin/