我是ELK堆棧的全新用戶。我從我的日誌中篩選出特定部分時遇到了一些問題。logstash/grok自定義文件
示例日誌:
[2017-05-30 13:58:09,336] INFO [com.qwerty.test.core.services.impl.order.OrderEntryService] (OrderEntryService.java:5426) [http-/0.0.0.0:1111-111] {{CT,1496145487308}{IP,111.11.111.11}{JTX,1511059/176275501}{OBJT,goodsMovement.reportsUtils.ConsignmentStocksList}{OPT,SQ}{PID,111111}{SS,SSCPLTMPRODPL}{TRT,SAP_LOGISTIC_REPORT}{UID,StudentSaSo-8}}: Saving order: K1010101
和我的神交過濾器:
grok { match => { "message" => "(?<timestamp>%{YEAR}-%{MONTHNUM2}-%{MONTHDAY} %{HOUR}:%{MINUTE}:%{SECOND},%{NONNEGINT})\] %{LOGLEVEL:loglevel} * \[(?<logger>[A-Za-z0-9$_.]+)\] \(%{JAVAFILE:class}:%{NONNEGINT:line}\) \[%{NOTSPACE:thread}\] %{GREEDYDATA:message_TEST}"} }
,所以我需要篩選出 「ID」, 「PID」,IP和「 UID「,我不知道如何配置這個特定的自定義模式。 我嘗試使用https://github.com/logstash-plugins/logstash-patterns-core/tree/master/patterns的模式,但它不適用於我
感謝alexK您的回覆,但你說的話後,我收到了另一個問題,我的日誌。 他們不經常。有些行只有IP和PID或JTX,PID和UID,還有它們混合在一起,我的意思是IP,UID等字段不總是處於同一位置...:/ 我像你寫的那樣映射了整個日誌 {{CT,%{DATA:克拉}} {IP,%{IPV4:IP}} {JTX,%{NONNEGINT:JTX}} {OBJT,%{GREEDYDATA:objt}} {OPT%{GREEDYDATA:OPT}} {PID,%{POSINT:PID}} {SS,%{GREEDYDATA:SS}} {TRT,%{GREEDYDATA:TRT}} {UID,%{DATA:UID}}}%{GREEDYDATA:log_message} 有沒有想過通過自動搜索字段或類似的東西來做到這一點? –