簡體   English   中英

Logstash grok模式可過濾自定義日志消息

[英]Logstash grok pattern to filter custom Log message

我是Logstash的新手,我想從日志消息中過濾文件。 這是日志消息:

[2015-03-16 13:12:05,130]  INFO - LogMediator ServiceName = TestService_v1,SystemDate = 3/16/15 1:12 PM,ServerIP = 127.0.1.1,ServerHost = Inspiron-3521,SequenceName = Validation,Message = Going to Validate Request ,MessageCode = null,ErrorMessage = null,ErrorDetail = null,ErrorException = null

從上面的日志消息中,我想提取所有字段,例如ServiceName,SystemDate,SequenceName等。此日志消息的grok模式或正則表達式是什么?

任何幫助,將不勝感激。

您可以先使用以下方式將消息分為三個部分(時間戳,日志級別和其余日志數據):

\[%{TIMESTAMP_ISO8601:timestamp}\]\s+%{WORD:loglevel}\s+-\s+%{GREEDYDATA:logData}

然后,您可以將csv過濾器應用於logdata字段,如下所示:

csv {
  columns => ["serviceName","systemDate","serverIP","serverHost","sequenceName","message","messageCode","errorMessage","errorDetail","errorException"]
  separator => ","
}

這將在每次之后分割logData,因此您將獲得一個名為message的新字段,其中包含文本“ Message =要驗證請求”。您現在可以編輯各個字段,例如,可以使用以下grok過濾器提取實際消息:

Message = %{GREEDYDATA:messageText}

我發現使用grok調試器找出各個grok模式非常有幫助: http ://grokdebug.herokuapp.com/

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM