簡(jiǎn)述
使用 Flume 實(shí)時(shí)收集日志的過(guò)程中,盡管有事務(wù)機(jī)制保證數(shù)據(jù)不丟失,但仍然需要時(shí)刻關(guān)注 Source、Channel、Sink 之間的消息傳輸是否正常。
比如,SouceChannel 傳輸了多少消息,ChannelSink 又傳輸了多少,兩處的消息量是否偏差過(guò)大等等。
Flume 為我們提供了 Monitor 的機(jī)制:http://flume.apache.org/FlumeUserGuide.html#monitoring 通過(guò)Reporting 的方式,把過(guò)程中的Counter都打印出來(lái)。
類(lèi)型
- JMX Reporting
- Ganglia Reporting
- JSON Reporting
- Custom Reporting
Ganglia Reporting
Flume 可以報(bào)告它的 metrics 到 ganglia3,只要你在啟動(dòng) Flume agent 的時(shí)候設(shè)置一些參數(shù)即可,也可以把這些參數(shù)設(shè)置在 flume-env.sh 配置文件中。需要設(shè)置的參數(shù)如下,這些參數(shù)的前綴如下Flume.monitoring:
- -Dflume.monitoring.type:類(lèi)型必須是ganglia
- -Dflume.monitoring.pollFrequency: 默認(rèn)值是60秒,flume向ganglia報(bào)告metrics的時(shí)間間隔
- -Dflume.monitoring.isGanglia3: 默認(rèn)是false,ganglia server的版本在3以上,flume 發(fā)送的是ganglia3.1的數(shù)據(jù)格式
啟動(dòng)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 也可以報(bào)告 JSON 格式的 report,為了開(kāi)啟 JSON report,在 Flume 機(jī)器上啟動(dòng)了一個(gè) web server。需要在客戶端啟動(dòng)時(shí)設(shè)置以下參數(shù):
type 該組件的名稱(chēng),這里設(shè)置為http
port 該服務(wù)監(jiān)聽(tīng)的端口,默認(rèn)是41414
啟動(dòng)flume Agent:
flume-ng agent --conf-file example.conf --name a1 -Dflume.monitoring.type=http -Dflume.monitoring.port=34545
然后通過(guò)http://<hostname>:<port>/metrics來(lái)查看值
作者:studytime
原文:https://www.studytime.xin/