iT邦幫忙

第 12 屆 iThome 鐵人賽

DAY 17
0
Elastic Stack on Cloud

Elastic 30天自我修行系列 第 17

解析三欄位的 Log File ( Logstash : grok )

  • 分享至 

  • xImage
  •  

昨天上傳 Log 檔到 Elastic Cloud 遇到很多問題,後來發現這次的參賽者中,已經有人提到解決方案。

我是參考這篇 16- 用Grok梳理文字天書般的日誌 ;感恩etsaycood 大大的整理,讓我可以站在巨人的肩頭上學習。

這是我昨天沒有法子直接上傳到 ElasticSearch 的log,因為ElasticSearch根本沒法子認識這種格式!

INFO [2020-16-09 21:47:35] New_Start
WARN [2020-16-09 21:47:35] 喂_要小心點_現在_Loaging:91%
INFO [2020-16-09 21:47:35] ___Pass___Pass___
INFO [2020-16-09 21:47:35] New_Start
WARN [2020-16-09 21:47:35] 喂_要小心點_現在_Loaging:95%
INFO [2020-16-09 21:47:35] ___Pass___Pass___

正常的資料流程應該是 :Log File --> Logstash Parse --> ElasticSearch。而我想要直接跳過中間的環節,當然就直接報錯了。

所以我們使用上面文章中介紹的連結,來試試我們要怎樣讓 Logstash 幫我們認識 log File。

我們先透過 https://grokdebug.herokuapp.com/ 來編寫規則,讓 Logstash 能認識我們的 log File。
先點選 Discover, 貼上一行 Log 做為測試,可以發現前面2個欄位已經被識別出來。

https://ithelp.ithome.com.tw/upload/images/20200917/20130033yWT2UuTi4P.png

現在只剩下第3欄,這個我自己當初在 R 隨意編寫的文字,還沒有被識別出來。
先切回 Debug , 把剛剛從 Discover 中拿到的規則 "%{CISCO_REASON}%{SYSLOG5424SD}" 貼上。
按下 GO!
https://ithelp.ithome.com.tw/upload/images/20200917/20130033vi5fkMJ8ZE.png

可以看到前2欄已經可以被 grok 給拆解成 json ,表示未來Logstash能夠識別,現在就剩下 "喂_要小心點_現在_Loaging:91%" 這個句子還沒法子被識別。

再點選 Pattern ,選擇 grok-patterns ,可以看到很多的規則,我想就用 "GREEDYDATA .*" 這個簡單的規則好了,然後再幫這個資料取個名字,就叫 my_message 吧

我的第一隻 grok 就完成啦。

%{CISCO_REASON}%{SYSLOG5424SD}%{GREEDYDATA:my_message}

結果如下,現在三個欄位都已經被解析出來囉。
https://ithelp.ithome.com.tw/upload/images/20200917/20130033F2Q4vi8iBr.png

所以今後的發文策略,要改成 "寄生上流" 站在巨人的肩頭上學習!

希望明天的發文,能夠成功實作 log File 匯入Logstash! 敬請期待 ~ 謝謝


上一篇
使用 R 寫入log檔(CSV)後上傳
下一篇
透過 Data Visualizer 上傳Log檔(semi-structured text)
系列文
Elastic 30天自我修行31
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言