Filebeat + ES + Kibana日志解析痛點(diǎn)解決

使用Filebeat + ES + Kibina的組合進(jìn)行日志收集的一個(gè)優(yōu)點(diǎn)就是輕量級悠汽,因?yàn)槿サ袅吮恐氐膌ogstash, 占用資源更少。但這也引入了一個(gè)問題芥驳,即filebeat并沒有l(wèi)ogstash那樣強(qiáng)大的日志解析能力柿冲,往往只能把整條日志當(dāng)成一個(gè)整體扔到ES中。好消息是兆旬,ES從5.x版本開始引入了Ingest Node假抄,即允許你在對文檔進(jìn)行索引之前進(jìn)行預(yù)處理,且支持logstash的Grok語法。因此我們可以在ES中針對我們的日志格式創(chuàng)建一個(gè)預(yù)處理pipeline, 通過配置pipeline中的processor完成日志解析宿饱。

以下面這條日志為基礎(chǔ)舉例:

[2019-02-19 17:04:28:017] http-nio-8050-exec-2 INFO c.b.o.xxx.ms.api.TaskController - response = {"jobId":"123","ms":10}

我們期望能夠?qū)⑦@條日志中的時(shí)間2019-02-19 17:04:28:017熏瞄、線程http-nio-8050-exec-2、日志級別INFO谬以、Java類名c.b.o.xxx.ms.api.TaskController和日志正文response = {"jobId":"123","ms":10}分別提取出來方便我們?nèi)蘸笤趉ibana中做篩選統(tǒng)計(jì), 同時(shí)時(shí)間要以日志中打印的時(shí)間為基準(zhǔn)而不是filebeat發(fā)送消息時(shí)的時(shí)間强饮。為了實(shí)現(xiàn)這一目標(biāo),我們可以向ES發(fā)一個(gè)HTTP請求創(chuàng)建一個(gè)名為xxx-log的pipeline:

PUT /_ingest/pipeline/xxx-log HTTP/1.1
Host: localhost:8200
Content-Type: application/json
{
  "description" : "xxx-log",
  "processors": [
    {
      "grok": {
        "field": "message",
        "patterns": ["\\[%{TIMESTAMP_ISO8601:log_time}\\] %{NOTSPACE:thread} %{NOTSPACE:log_level} %{NOTSPACE:java_class} - %{GREEDYDATA:content}"]
      }
    },
    {
        "date": {
            "field": "log_time",
            "formats": ["yyyy-MM-dd HH:mm:ss:SSS"],
            "timezone": "Asia/Shanghai",
            "target_field": "@timestamp"
        }
    }
  ]
}

在這里我們定義了兩個(gè)processor为黎,第一個(gè)為grok處理器邮丰,用于解析日志字符串提取其中關(guān)鍵字段; 第二個(gè)是日期處理器,功能為把log_time字段以yyyy-MM-dd HH:mm:ss:SSS格式解析成日期碍舍,然后將結(jié)果保存到@timestamp字段中柠座。

創(chuàng)建完processor以后,我們只需要配置filebeat在輸出日志到ES時(shí)使用這個(gè)名為xxx-log的預(yù)處理器即可:

1__work_bjyz-matrix-016____ssh_.png

這樣就完成了所有的工作片橡。這時(shí)啟動filebeat, 如果如出以下錯(cuò)誤信息

ERROR pipeline/output.go:92 Failed to publish events: temporary bulk send failure

大概率是因?yàn)槟惆l(fā)送的日志格式無法與grok表達(dá)式匹配妈经,修改processor定義json即可。也可以在啟動filebeat時(shí)添加-d "*"參數(shù)來查看具體的錯(cuò)誤原因捧书。

下圖是日志在kibana中的展示效果:


Discover_-_Kibana.png

可以看到主要的字段都已經(jīng)被正確解析吹泡。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市经瓷,隨后出現(xiàn)的幾起案子爆哑,更是在濱河造成了極大的恐慌,老刑警劉巖舆吮,帶你破解...
    沈念sama閱讀 217,542評論 6 504
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件揭朝,死亡現(xiàn)場離奇詭異,居然都是意外死亡色冀,警方通過查閱死者的電腦和手機(jī)啃匿,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,822評論 3 394
  • 文/潘曉璐 我一進(jìn)店門幔嗦,熙熙樓的掌柜王于貴愁眉苦臉地迎上來沽甥,“玉大人杠娱,你說我怎么就攤上這事∮胙В” “怎么了彤悔?”我有些...
    開封第一講書人閱讀 163,912評論 0 354
  • 文/不壞的土叔 我叫張陵,是天一觀的道長索守。 經(jīng)常有香客問我晕窑,道長,這世上最難降的妖魔是什么卵佛? 我笑而不...
    開封第一講書人閱讀 58,449評論 1 293
  • 正文 為了忘掉前任杨赤,我火速辦了婚禮蓝丙,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘望拖。我一直安慰自己渺尘,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,500評論 6 392
  • 文/花漫 我一把揭開白布说敏。 她就那樣靜靜地躺著鸥跟,像睡著了一般。 火紅的嫁衣襯著肌膚如雪盔沫。 梳的紋絲不亂的頭發(fā)上医咨,一...
    開封第一講書人閱讀 51,370評論 1 302
  • 那天,我揣著相機(jī)與錄音架诞,去河邊找鬼拟淮。 笑死,一個(gè)胖子當(dāng)著我的面吹牛谴忧,可吹牛的內(nèi)容都是我干的很泊。 我是一名探鬼主播,決...
    沈念sama閱讀 40,193評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼沾谓,長吁一口氣:“原來是場噩夢啊……” “哼委造!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起均驶,我...
    開封第一講書人閱讀 39,074評論 0 276
  • 序言:老撾萬榮一對情侶失蹤昏兆,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后妇穴,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體爬虱,經(jīng)...
    沈念sama閱讀 45,505評論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,722評論 3 335
  • 正文 我和宋清朗相戀三年腾它,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了跑筝。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 39,841評論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡携狭,死狀恐怖继蜡,靈堂內(nèi)的尸體忽然破棺而出回俐,到底是詐尸還是另有隱情逛腿,我是刑警寧澤,帶...
    沈念sama閱讀 35,569評論 5 345
  • 正文 年R本政府宣布仅颇,位于F島的核電站单默,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏忘瓦。R本人自食惡果不足惜搁廓,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,168評論 3 328
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧境蜕,春花似錦蝙场、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,783評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至台诗,卻和暖如春完箩,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背拉队。 一陣腳步聲響...
    開封第一講書人閱讀 32,918評論 1 269
  • 我被黑心中介騙來泰國打工弊知, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人粱快。 一個(gè)月前我還...
    沈念sama閱讀 47,962評論 2 370
  • 正文 我出身青樓秩彤,卻偏偏與公主長得像,于是被迫代替她去往敵國和親事哭。 傳聞我的和親對象是個(gè)殘疾皇子呐舔,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,781評論 2 354