Fluented,fluented有香味的也許你聽(tīng)說(shuō)過(guò)Fluentd的統(tǒng)一日志層。也許您已經(jīng)熟悉了日志是流而不是文件的概念,所以現(xiàn)在讓我們以這種方式來(lái)考慮日志層。其實(shí)最后決定性的一點(diǎn)是fluentd怎么配置。這都是關(guān)于我們?nèi)绾翁幚砹鞯牟煌?我們從哪里獲得數(shù)據(jù),當(dāng)我們獲得數(shù)據(jù)時(shí)我們用它做什么,我們將處理過(guò)的數(shù)據(jù)發(fā)國(guó)際......
也許你聽(tīng)說(shuō)過(guò)Fluentd的統(tǒng)一日志層。也許您已經(jīng)熟悉了日志是流而不是文件的概念,所以現(xiàn)在讓我們以這種方式來(lái)考慮日志層。
其實(shí)最后決定性的一點(diǎn)是fluentd怎么配置。這都是關(guān)于我們?nèi)绾翁幚砹鞯牟煌?我們從哪里獲得數(shù)據(jù),當(dāng)我們獲得數(shù)據(jù)時(shí)我們用它做什么,我們將處理過(guò)的數(shù)據(jù)發(fā)國(guó)際快遞哪里,以及當(dāng)它們?cè)诎l(fā)快遞過(guò)程中時(shí)我們用它做什么。在這篇博客中,我們將回顧這些概念,并將它們應(yīng)用到以下案例中:
1.Log從Docker容器輸出命令(但是在容器掛起時(shí)保留配置)
2.處理JSON日志
3.將信息按等級(jí)分類(lèi)。
4.將數(shù)據(jù)流分離到兩個(gè)目的地。
原來(lái)Google云平臺(tái)和Kubernetes已經(jīng)默認(rèn)包含fluentd日志層輸出。通過(guò)這種方式,您可以準(zhǔn)確地完成這些事情,但首先,讓我們來(lái)看看fluentd.conf文件中的說(shuō)明:
1.源指令決定輸入源。
2.匹配指令決定輸出目的地。
3.filter指令確定事件處理管道。
4.系統(tǒng)指令設(shè)置系統(tǒng)范圍的配置。
5.label指令對(duì)內(nèi)部路由和過(guò)濾器的輸出進(jìn)行分組。
6.include指令包括其他文檔。
基本方案(用于記錄Docker標(biāo)準(zhǔn)輸出命令)
現(xiàn)在,對(duì)于我們的目標(biāo),我們將主要考慮源代碼和匹配指令。下面是一個(gè)例子,配置為logging命令,直接從一個(gè)容器到寶藏?cái)?shù)據(jù)(而且,因?yàn)槲覀兊呐渲檬窃赨buntu主機(jī)上,所以不會(huì)用Docker容器中止!)。
發(fā)生了什么事?
我們的源指令告訴我們,我們正在使用forwardinput插件,它告訴fluentd偵聽(tīng)TCP套接字以接收事件流。
我們有兩個(gè)比賽說(shuō)明。當(dāng)我們啟動(dòng)容器時(shí),最后一個(gè)假設(shè)是我們已經(jīng)設(shè)置了日志選項(xiàng):
logopt fluentdtag = TD . docker . { {。姓名}}
這個(gè)指令告訴我們使用標(biāo)準(zhǔn)輸出插件將事件打印到標(biāo)準(zhǔn)輸出。
然而,它不僅是第一條指令,也是最有趣的一條指令。現(xiàn)在,假設(shè)相同的日志選項(xiàng),我們匹配所有標(biāo)記為td的內(nèi)容。*.*并使用td日志輸出插件將每個(gè)控制臺(tái)輸出作為單個(gè)日志輸出發(fā)國(guó)際快遞名為docker的寶藏?cái)?shù)據(jù)數(shù)據(jù)庫(kù)。在這里,表也是Docker容器的名稱(chēng):
Autocreatetable在第一個(gè)實(shí)例上創(chuàng)建一個(gè)表。
Buffertype file將緩沖區(qū)寫(xiě)入文件。
Bufferpath指定Docker容器上的緩沖文件路徑。
Flushinterval 5s設(shè)置刷新緩沖區(qū)時(shí)間隔5秒,寫(xiě)入寶藏?cái)?shù)據(jù)表。
你開(kāi)始明白這是怎么回事了嗎?要了解更多關(guān)于fluentd配置和參數(shù)的信息,請(qǐng)點(diǎn)擊此處查看更多文章:https://docs.fluentd.org/articles/configfile
將結(jié)果記錄到谷歌云平臺(tái)
準(zhǔn)備好看看fluentd如何與谷歌云平臺(tái)一起運(yùn)行了嗎?我們來(lái)看一些不同的場(chǎng)景。多虧了Kubernetes團(tuán)隊(duì),這些配置(以及與這些非常相似的配置)都可以在github上獲得。
正在處理JSON日志
在這里,我們?cè)贘SON上跟蹤日志,并在Kubernetes上記錄結(jié)果。我們必須處理時(shí)間戳,所以我們包含了timekey和timeformat指令。最后,我們用Kubernetes和適當(dāng)?shù)奈ㄒ缓缶Y來(lái)標(biāo)記數(shù)據(jù)流。我們還指定了位置文件,并將readfromhead設(shè)置為true。如果由于某種原因,我們的流被中斷,這將使我們停止并重新開(kāi)始處理。
通過(guò)不同的級(jí)別對(duì)信息進(jìn)行分類(lèi)
我們可以跟蹤不同的信息,并使用常規(guī)表達(dá)式來(lái)查找一些信息,如格式、級(jí)別(嚴(yán)重性)、信息、錯(cuò)誤(如果有)和狀態(tài)代碼。注意,我們必須解析輸出中的時(shí)間。我們?cè)俅问褂梦恢梦募?lái)保持我們?cè)诹髦械奈恢谩N覀儜?yīng)該包括一個(gè)匹配部分,將數(shù)據(jù)路由到特定的目的地。
將數(shù)據(jù)流分離到兩個(gè)不同的目的地
在這里,我們解析自動(dòng)定量日志并管理我們的緩沖區(qū)、查詢和塊大小。對(duì)于這兩個(gè)目的地(即GCP和庫(kù)伯內(nèi)特),我們一直在再次嘗試。
接下來(lái)是什么?
你能自己創(chuàng)建一個(gè)最簡(jiǎn)單的日志基礎(chǔ)工具嗎?讓Fluentd來(lái)!
fluentd.org
這個(gè)網(wǎng)站上有不少于200個(gè)輸入和其他插件。在這里,你可以看到他們受歡迎程度的降序排列。
fluentd.org/plugins/all
如果你想分類(lèi)了解插件,點(diǎn)擊上面的網(wǎng)址。
fluentd.org/plugins
最后,你可以在這個(gè)網(wǎng)站上獲得寶藏?cái)?shù)據(jù)(你可以在treasuredata.com上注冊(cè)一個(gè)14天試用期的賬戶)。
特別聲明:以上文章內(nèi)容僅代表作者本人觀點(diǎn),不代表ESG跨境電商觀點(diǎn)或立場(chǎng)。如有關(guān)于作品內(nèi)容、版權(quán)或其它問(wèn)題請(qǐng)于作品發(fā)表后的30日內(nèi)與ESG跨境電商聯(lián)系。
二維碼加載中...
使用微信掃一掃登錄
使用賬號(hào)密碼登錄
平臺(tái)顧問(wèn)
微信掃一掃
馬上聯(lián)系在線顧問(wèn)
小程序
ESG跨境小程序
手機(jī)入駐更便捷
返回頂部