flume如何監(jiān)控多個(gè)動態(tài)變化的日志文件


同時(shí)監(jiān)控多個(gè)文件并下沉到hdfs配置的agent:

這種功能應(yīng)用場景:是對歷史文件進(jìn)行遷移使用,并不適用實(shí)時(shí)收集場景,只能通過拆分日志實(shí)現(xiàn)準(zhǔn)實(shí)時(shí),而且必須要把要存儲的文件扔進(jìn)被flume監(jiān)控的文件夾才能被自動監(jiān)控并發(fā)送到hdfs中存儲起來。整個(gè)文件數(shù)據(jù)傳輸完畢后,文件后綴會被更改成后綴為.COMPLETED的文件。此后綴在設(shè)置source時(shí)可以通過其fileSuffix關(guān)鍵字自定義,默認(rèn)是COMPLETED

采集源,即source——監(jiān)控文件目錄 : spooldir

下沉目標(biāo),即sink——HDFS文件系統(tǒng) : hdfs sink

source和sink之間的傳遞通道——channel,可用file channel 也可以用內(nèi)存channel

配置文件名稱:spooldir-memory-hdfs.conf

# Name the components on this agent

spooldir-memory-hdfs.sources = spooldir-source

spooldir-memory-hdfs.sinks = hdfs-sink

spooldir-memory-hdfs.channels = memory-channel

# Describe/configure the source

##注意:不能往監(jiān)控目中重復(fù)丟同名文件

## 通過spooldir來監(jiān)控文件內(nèi)容的變化

spooldir-memory-hdfs.sources.spooldir-source.type = spooldir

##監(jiān)控日志文件所在的目錄

spooldir-memory-hdfs.sources.spooldir-source.spoolDir =/usr/logtest

spooldir-memory-hdfs.sources.spooldir-source.fileHeader = true

spooldir-memory-hdfs.sources.spooldir-source.ignorePattern=^(.)*\\.out$

# Describe the sink

## 表示下沉到hdfs,下面配置的類型不同,type下面的參數(shù)就不同

spooldir-memory-hdfs.sinks.hdfs-sink.type = hdfs

#sinks.k1只能連接一個(gè)channel,source可以配置多個(gè)

spooldir-memory-hdfs.sinks.hdfs-sink.channel = memory-channel

#下面的配置告訴用hdfs去寫文件的時(shí)候?qū)懙绞裁次恢?,下面的表示不是寫死的,而是動態(tài)變化的。表示輸出的目錄名稱是可變的

spooldir-memory-hdfs.sinks.hdfs-sink.hdfs.path =hdfs://192.168.32.129:9000/xcx/%y-%m-%d/%H%M/

#表示文件的前綴

spooldir-memory-hdfs.sinks.hdfs-sink.hdfs.filePrefix = xcx-

spooldir-memory-hdfs.sinks.hdfs-sink.hdfs.fileSuffix =.lzo? ? ?###存儲文件后綴,推薦lzo

spooldir-memory-hdfs.sinks.hdfs-sink.hdfs.codeC=lzo? ? ? ###壓縮格式可選值gzip, bzip2, lzo, lzop, snappy

spooldir-memory-hdfs.sinks.hdfs-sink.hdfs.writeFormat=Text? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ###書寫格式

spooldir-memory-hdfs.sinks.hdfs-sink.hdfs.codeC=lzo? ###壓縮格式

#表示到了需要觸發(fā)的時(shí)間時(shí),是否要更新文件夾,true:表示要更新

spooldir-memory-hdfs.sinks.hdfs-sink.hdfs.round = true

##表示每隔10分鐘改變一下文件夾

spooldir-memory-hdfs.sinks.hdfs-sink.hdfs.roundValue = 10

##切換文件的時(shí)候單位是分鐘

spooldir-memory-hdfs.sinks.hdfs-sink.hdfs.roundUnit = minute

##表示只要過了3秒鐘,就切換生成一個(gè)新的文件

##spooldir-memory-hdfs.sinks.hdfs-sink.hdfs.rollInterval = 3

##如果記錄的文件大于200(字節(jié))時(shí)切換一次

spooldir-memory-hdfs.sinks.hdfs-sink.hdfs.rollSize = 200

##當(dāng)寫了5個(gè)事件時(shí)觸發(fā),如果讓此項(xiàng)失效,設(shè)置為0

spooldir-memory-hdfs.sinks.hdfs-sink.hdfs.rollCount = 5

##收到了多少條消息往hdfs中追加內(nèi)容

spooldir-memory-hdfs.sinks.hdfs-sink.hdfs.batchSize = 1

#使用本地時(shí)間戳

spooldir-memory-hdfs.sinks.hdfs-sink.hdfs.useLocalTimeStamp = true

# Use a channel which buffers events in memory

##使用內(nèi)存的方式

spooldir-memory-hdfs.channels.memory-channel.type = memory

spooldir-memory-hdfs.channels.memory-channel.capacity = 1000

spooldir-memory-hdfs.channels.memory-channel.transactionCapacity = 100

# Bind the source and sink to the channel

spooldir-memory-hdfs.sources.spooldir-source.channels = memory-channel

spooldir-memory-hdfs.sinks.hdfs-sink.channel = memory-channel

屏蔽無需flume監(jiān)控的文件

在傳輸新文件到監(jiān)控的文件夾時(shí),需要讓Spooing Directory Source忽略這個(gè)正在傳輸?shù)奈募?,等傳輸完畢后在觸發(fā)??梢允褂胕gnorePattern屬性來避免。

spooldir-memory-hdfs.sources.spooldir-source.ignorePattern=^(.)*\\.out$

臨時(shí)方式啟動:

bin/flume-ng agent --conf $FLUME_HOME/conf --conf-file?$FLUME_HOME/conf/spooldir-memory-hdfs.conf?--name spooldir-memory-hdfs -Dflume.root.logger=INFO,console

后臺方式啟動:

nohup bin/flume-ng agent --conf $FLUME_HOME/conf --conf-file?$FLUME_HOME/conf/spooldir-memory-hdfs.conf?--name spooldir-memory-hdfs &

改動文件后flume監(jiān)控的目錄下文件都會

扔了之后,現(xiàn)象是?

1、/usr/logtest/文件夾下的文件加了一個(gè)后綴.COMPLETED


?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 我的體會字?jǐn)?shù)開始變得多了一點(diǎn),開始從觀察的東西表象,去想背后的故事。事物之間的關(guān)聯(lián),即是因果關(guān)系。因果循環(huán),善因得...
    思思培閱讀 292評論 0 0
  • 多數(shù)人不太習(xí)慣表達(dá)情緒,不表達(dá)情緒的后果是最后用疾病來表達(dá), 如果你對中醫(yī)了解得更深,很多疾病都是情志病, 多年的...
    張德佳2閱讀 357評論 0 0
  • 2016年7月14日,我第一次知道了你,簡書,可能比很多人晚了一些... 喜歡這個(gè)名字,簡單、純凈,希望會有很多的...
    不想訴說的秘密閱讀 298評論 1 1
  • 今天上午孩子給我打電話,說這幾天上午和下午都要安排排練,問我可不可以不寫作業(yè)了。我選擇了一項(xiàng)很容易完成的作業(yè)讓她做...
    董濤_1dcd閱讀 167評論 0 0

友情鏈接更多精彩內(nèi)容