溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

使用Fluentd和MongoDB構(gòu)建日志收集系統(tǒng)

發(fā)布時(shí)間:2020-10-14 00:18:29 來(lái)源:網(wǎng)絡(luò) 閱讀:1934 作者:ljl_19880709 欄目:MongoDB數(shù)據(jù)庫(kù)

Fluentd是一個(gè)日志收集系統(tǒng),它的特點(diǎn)在于其各部分均是可定制化的,你可以通過(guò)簡(jiǎn)單的配置,將日志收集到不同的地方。

本文要介紹的是在Fluentd的最新版中已經(jīng)內(nèi)置的MongoDB支持。主要通過(guò)一個(gè)收集Apache/nginx日志的例子來(lái)說(shuō)明其使用方法:

機(jī)制圖解



使用Fluentd和MongoDB構(gòu)建日志收集系統(tǒng)



安裝Fluentd

設(shè)置yum源

vi /etc/yum.repos.d/td.repo

[treasuredata]

name=TreasureData

baseurl=http://packages.treasure-data.com/redhat/x86_64/

gpgcheck=1

gpgkey=http://packages.treasure-data.com/redhat/RPM-GPG-KEY-td-agent


yum clean all

yum makecache

yum -y install td-agent

在Fluentd的最新安裝包中已經(jīng)包含了MongoDB插件,所以不需要安裝mongo插件

配置

  如果你是使用上面的deb/rpm包安裝的Fluentd,那么配置文件位置在:/etc/td-agent/td-agent.conf,否則其位置應(yīng)該在:/etc/fluentd/fluentd.conf

  首先我們編輯配置文件中的source來(lái)設(shè)置日志來(lái)源

<source>

 type tail

 format apache

 pos_file /var/log/td-agent/nginx-access.log.pos

 path /usr/local/nginx/logs/www.access.log

 tag mongo.apache

</source>


其中:

①type tail: tail方式是 Fluentd 內(nèi)置的輸入方式,其原理是不停地從源文件中獲取新的日志。

②format apache: 指定使用 Fluentd 內(nèi)置的 Apache 日志解析器。

③path /var/log/apache2/access_log: 指定日志文件位置。

④tag mongo.apache: 指定tag,tag被用來(lái)對(duì)不同的日志進(jìn)行分類

下面再來(lái)編輯輸出配置,配置日志收集后存儲(chǔ)到MongoDB中



  match標(biāo)簽后面可以跟正則表達(dá)式以匹配我們指定的tag,只有匹配成功的tag對(duì)應(yīng)的日志才會(huì)運(yùn)用里面的配置。配置中的其它項(xiàng)都比

<match mongo.**>

# plugin type

type mongo

# mongodb db + collection

database apache

collection access

# mongodb host + port

host 192.168.30.113

port 3306

# interval

flush_interval 10s

</match>

較好理解,看注釋就可以了,其中flush_interval是用來(lái)控制多長(zhǎng)時(shí)間將日志寫(xiě)入MongoDB一次。

注意:如果是收集的是nginx日志的話,日志格式要保持默認(rèn)的。

啟動(dòng)td-agent

service td-agent start


然后我們?cè)贛ongoDB中就能看到收集到的日志了

/usr/local/mongodb/bin/mongo 192.168.30.113:3306


MongoDB shell version: 2.0.4

connecting to: 192.168.30.113:3306/test

> use apache

switched to db apache

> db.access.find()

{ "_id" : ObjectId("530fee3753357d2437000001"), "host" : "192.168.30.1", "user" : "-", "method" : "GET", "path" : "/api?callback=jQuery172014558692439459264_1393552941396&do=show_workspace&MEMBER_ID=80&os=w&webtoken=1b43342c1f&_=1393552941501", "code" : "301", "size" : "178", "referer" : "http://www.weiduoa.com/", "agent" : "Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/30.0.1599.101 Safari/537.36", "time" : ISODate("2014-02-28T02:02:29Z") }

{ "_id" : ObjectId("530fee3753357d2437000002"), "host" : "192.168.30.1", "user" : "-", "method" : "GET", "path" : "/api?callback=jQuery172014558692439459264_1393552941397&do=inboxmemberlist&MEMBER_ID=80&os=w&webtoken=1b43342c1f&_=1393552941505", "code" : "301", "size" : "178", "referer" : "http://www.weiduoa.com/", "agent" : "Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/30.0.1599.101 Safari/537.36", "time" : ISODate("2014-02-28T02:02:29Z") }






向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI