GROK解析正則表達式


 

GROK解析正則表達式

我使用以下正則表達式:
  1. INT (?:[+-]?(?:[0-9]+))
  2. VALUE ([0-9]+)
  3. SPACE \s*
  4. DATA .*?
  5. USERNAME [a-zA-Z0-9._-]+
  6. YEAR (?>\d\d){1,2}
  7. MONTHNUM (?:0?[1-9]|1[0-2])
  8. MONTHDAY (?:(?:0[1-9])|(?:[12][0-9])|(?:3[01])|[1-9])
  9. HOUR (?:2[0123]|[01]?[0-9])
  10. MINUTE (?:[0-5][0-9])
  11. SECOND (?:(?:[0-5][0-9]|60))
  12. ISO8601_TIMEZONE (?:Z|[+-]%{HOUR}(?::?%{MINUTE}))
  13. TIMESTAMP %{YEAR:year}/%{MONTHNUM:monthnum}/%{MONTHDAY:monthday}-%{HOUR:hour}:%{MINUTE:minute}:%{SECOND:second}.%{VALUE:_second}
  14. MESSAGE %{DATA}ERR_SYSTEM%{DATA}
  15. PARSE_ERROR %{TIMESTAMP:ts}%{SPACE}%{USERNAME:type1}%{SPACE}%{USERNAME:slave}%{SPACE}%{USERNAME:type2}%{SPACE}[%{USERNAME:fibre1}/USERNAME:fibre2]%{SPACE}%{MESSAGE:message}

現在我必須解析這一行:

 

2013/05/13-05:19:16.776 INFO abcd1 gamereporting
[0000000000000000/00000000000000000000]
[GameReportingSlaveImpl:0x30bf7699a010].processReport() : Error
processing report for id=18014398509852207,type=frostbite_m,
error=ERR_SYSTEM

解析后我得到以下內容:

 

  1. type1: INFO
  2. slave : abcd1
  3. type2: gamereportin

現在,類型2總是錯過’g’.為什么會這樣?

有人能為上述行提供正確的正則表達式嗎?

解決方法

你在用  Grok Debugger嗎?

 

你的Grok模式在哪里?我在你的帖子中沒有看到它.

我會使用類似於以下內容的東西開始.由於您沒有深入了解如何保存數據,因此您必須在弄清楚時添加它.

 

  1. %{DATESTAMP}%{SPACE}%{LOGLEVEL}%{SPACE}%{WORD}%{SPACE}%{WORD}%{SPACE}(?<some_id>\[\d+\/\d+\])

使用Grok Debugger – 它將為您節省大量時間

 

  1. grok的正則在線調試: http://grokdebug.herokuapp.com
  2. 官方地址: https://github.com/logstash-plugins/logstash-patterns-core/tree/master/patterns  
  3. 參考地址: http://www.net-add.com/a/zidonghuayunwei/rizhifenxi/2018/0717/77.html


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM