使用logstash接收log,但是log種類很雜什麼都有,主要使用grok來過濾,想請問以下三個問題:
1.有一種log平時不帶資料為空格,有資料的時候才顯示,例如:
無資料: a,,,d...
有資料: a,b,c,d...
我目前是寫兩條 match => [ "message" =>"巴拉巴拉"]來過濾,也就是直接視為兩種不同的log,但是明明欄位是一樣的,這樣雖然可以運作,但是成效好像不是太好,不知道有沒有更好的解法?
2.因為我接收的log不只一種,不知道有沒有比較好的解法,目前是一台server的log全部透過同一條port送過來,例如:
a log: 2020/02/02 lala,fall,c,"I have a apple",....
b log: 2020/02/02 192.168.0.1,http,fall,......
我該怎麼去過濾會比較好呢?直接寫兩條不一樣的grok嗎?
3.log中有一段是顯一段話的,會根據不同情況發出不同訊息,這一段又有資料需要去提取我該怎麼寫呢?
例如:
3-1: a,b,"login yo Bob what's up? ,your ip is 192.168.0.1",c,d....
3-2: a,b,"2020/02/20 Bob, happy, computer systemcl: Mac os",c,d...
令我最困擾的就是中間那一段,有"符號就算了,還有很多種變化,句子長短不定,我該怎麼去寫比較好?目前只想到土法煉鋼去寫,把每一種訊息寫一次...,但這樣感覺不是最佳解。
以上問題希望有前輩可以解答與指教,謝謝!!!