Flume 1.5日誌採集並存入mongodb的安裝搭建

來源:互聯網
上載者:User

標籤:blog   http   io   ar   os   使用   sp   java   檔案   

Flume的介紹就不多說了,大家可以自己搜尋。但是目前網上大都是Flume 1.4版本或之前的資料,Flume 1.5感覺變化挺大的,如果你準備嘗試一下,我這裡給大家介紹一下最小化搭建方案,並且使用MongoSink將資料存入mongodb。完全單機運行,沒有master,沒有collector(說白了collector也就是一個agent,只是資料來源於多個其他agent),只有一個agent。把這套東西理解了你就可以自由發揮了


Flume是必須要求java運行環境的哈,jdk安裝就不解釋了,推薦yum安裝。

另外JDK安裝好以後不用設定什麼環境變數,flume其實可以自己找到的,只是會發出一個警告而已,無視之


首先去下載Flume 1.5安裝包

http://flume.apache.org/download.html

只需要下載apache-flume-1.5.0.1-bin.tar.gz就可以了,32位64位系統通吃


這裡我們把安裝包放到/home目錄下,然後解壓縮

tar zxvf apache-flume-1.5.0-bin.tar.gz

把解壓得到的apache-flume-1.5.0-bin檔案夾改名成flume,所以我們flume的路徑是/home/flume


網上很多說要設定flume home環境變數,其實不用的


這裡我們新增一個設定檔到/home/flume/conf/netcat.conf(其中的agent2/source2/sink2/channel2都是自己定義的名稱,隨便改)

# 定義組件名稱agent2.sources = source2agent2.sinks = sink2agent2.channels = channel2# 定義資料入口agent2.sources.source2.type = netcatagent2.sources.source2.bind = 192.168.6.198agent2.sources.source2.port = 44444agent2.sources.source2.channels = channel2# 定義資料出口agent2.sinks.sink2.type = org.riderzen.flume.sink.MongoSinkagent2.sinks.sink2.host = 192.168.6.222agent2.sinks.sink2.port = 27017agent2.sinks.sink2.model = singleagent2.sinks.sink2.collection = eventsagent2.sinks.sink2.batch = 100agent2.sinks.sink2.channel = channel2# 使用記憶體管道agent2.channels.channel2.type = memoryagent2.channels.channel2.capacity = 1000agent2.channels.channel2.transactionCapacity = 100


以上設定檔相信大家一看就很明了了,我簡單介紹一下:

資料來源是source2,而source2的定義是接收本機192.168.6.198:44444連接埠發過來的資料,然後存放到channel2緩衝管道裡面去
channel2是什麼呢?看最下面對channel2的定義,它是一個記憶體緩衝隊列,容量是1000條資料,滿100條就會被sink處理掉

那麼sink的定義呢?這裡我們用到了Leon Lee(李龍?可能是國內哪位大神,感謝你哈)編寫的一個MongoSink,作用是把從channel2取出的資料存入MongoDB,並且累計100條資料才提交

MongoSink請到這裡下載:https://github.com/leonlee/flume-ng-mongodb-sink


MongoSink我簡單說一下,只需要把他打成jar包丟到/home/flume/lib裡面就行了,當然別忘了把mongodb驅動也丟進去。以後你要是開發其他擴充包都是丟到lib裡面就好


好,那麼我們就清楚了,flume的作用就是從source擷取資料,存入channel緩衝隊列,最後由sink放入永久儲存


運行以下命令啟動flume

/home/flume/bin/flume-ng agent --conf /home/flume/conf --conf-file /home/flume/conf/netcat.conf --name agent2 -Dflume.monitoring.type=http -Dflume.monitoring.port=34545

大致解釋一下:

--name agent2                指定當前啟動並執行這個agent的名稱

--conf /home/flume/conf        這個參數最好指定絕對路徑,說明你的設定檔存放目錄,不單單指agent的配置,其中還有log4j的配置,不然無法記錄日誌

--conf-file /home/flume/conf/netcat.conf         這個是指當前要啟動並執行agent所使用的設定檔

-Dflume.monitoring.type=http          指定開啟HTTP監控,可以通過瀏覽器直接存取本機HTTP地址查看flume運行狀態

-Dflume.monitoring.port=34545            指定HTTP監控的連接埠


如果你需要在控制台顯示一些調試資訊的話請自行配置/home/flume/conf/log4j.properties

OK,等著成功吧


現目前我們主要是解決了日誌資料不必直接寫mongo庫,只要把IP和連接埠告知其他項目團隊,他們直接往這裡發送資料就行了


後期考慮到mongodb可能有些局限性,我們可以非常靈活的改寫sink,把資料存入hdfs,然後就和高大上的hadoop親密接觸拉


Flume 1.5日誌採集並存入mongodb的安裝搭建

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.