Flume 知識點(六)Flume 的監控
阿新 • • 發佈:2019-10-09
簡述
使用 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/