Flume 知識點(六)Flume 的監控

  • 2019 年 10 月 9 日
  • 筆記

簡述

使用 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://:/metrics來查看值

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