數(shù)倉學(xué)習(xí)中給自己總結(jié)一下:
主要接觸了三種Source:Exec Source 、Spooling Directory Source和Taildir Source。
Exec Source
Exec Source可通過tail -f命令去tail住一個文件,然后實時同步日志到sink。
但存在的問題是,當(dāng)agent進(jìn)程掛掉重啟后,會有重復(fù)消費(fèi)的問題。
Spooling Directory Source
Spooling Directory Source可監(jiān)聽一個目錄,同步目錄中的新文件到sink,被同步完的文件可被立即刪除或被打上標(biāo)記。
適合用于同步新文件,但不適合對實時追加日志的文件進(jìn)行監(jiān)聽并同步。
如果需要實時監(jiān)聽追加內(nèi)容的文件,可對SpoolDirectorySource進(jìn)行改進(jìn)。
Taildir Source
Taildir Source可實時監(jiān)控一批文件,并記錄每個文件最新消費(fèi)位置,agent進(jìn)程重啟后不會有重復(fù)消費(fèi)的問題。
使用時建議用1.8.0版本的flume,1.8.0版本中解決了Taildir Source一個可能會丟數(shù)據(jù)的bug
Exec source 適用于監(jiān)控一個實時追加的文件,但不能保證數(shù)據(jù)不丟失;Spooldir
Source 能夠保證數(shù)據(jù)不丟失,且能夠?qū)崿F(xiàn)斷點續(xù)傳,但延遲較高,不能實時監(jiān)控;而 Taildir
Source 既能夠?qū)崿F(xiàn)斷點續(xù)傳,又可以保證數(shù)據(jù)不丟失,還能夠進(jìn)行實時監(jiān)控。