GROK解析正则表达式

摘要:
GROK解析正则表达式我使用以下正则表达式:INT(?%{MINUTE}))TIMESTAMP%{YEAR:year}/%{MONTHNUM:monthnum}/%{MONTHDAY:monthday}-%{HOUR:hour}:%{MINUTE:minute}:%{SECOND:second}.%{VALUE:_second}MESSAGE%{DATA}ERR_SYSTEM%{DATA}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.776INFOabcd1gamereporting[0000000000000000/00000000000000000000][GameReportingSlaveImpl:0x30bf7699a010].processReport():Errorprocessingreportforid=18014398509852207,type=frostbite_m,error=ERR_SYSTEM解析后我得到以下内容:type1:INFOslave:abcd1type2:gamereportin现在,类型2总是错过’g’.为什么会这样?有人能为上述行提供正确的正则表达式吗?解决方法你在用GrokDebugger吗?你的Grok模式在哪里?我在你的帖子中没有看到它.我会使用类似于以下内容的东西开始.由于您没有深入了解如何保存数据,因此您必须在弄清楚时添加它.%{DATESTAMP}%{SPACE}%{LOGLEVEL}%{SPACE}%{WORD}%{SPACE}%{WORD}%{SPACE}(?

GROK解析正则表达式

我使用以下正则表达式:
  1. INT (?:[+-]?(?:[0-9]+))
  2. VALUE ([0-9]+)
  3. SPACE s*
  4. DATA .*?
  5. USERNAME [a-zA-Z0-9._-]+
  6. YEAR (?>dd){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

免责声明:文章转载自《GROK解析正则表达式》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇怎么使用gitee进行团队开发15个Android通用流行框架大全下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

java 正则表达式

java 正则表达式 package com.project.utils; import org.apache.commons.lang.StringUtils; import java.util.regex.Matcher; import java.util.regex.Pattern; public class ContentUtils {...

asp.net正则表达式提取网页网址、标题、图片实例以及过滤所有HTML标签实例

  无论你用什么语言,正则表达式的处理方法都是非常灵活、高效的,尤其是对某些字符串的抓取、过滤方面,更显其优势。 正则表达式的写法通常比较简单,几行短代码便能轻松完成看似很复杂的事情,更值得称赞的是,它的执行效率非常高,运行速度相当快。因此我在项目的开发中,通常把正则表达式作为处理问题的首选方法。 正则表达式的运用,在各种语言里都是相通的,也就是说,当你...

c#正则表达式匹配整数和小数

c#中使用正则表达式需要加入using System.Text.RegularExpressions的引用 匹配整数的一种表达式: Regex.IsMatch(inputerstr, "^([0-9]{1,})$") 其中Inputerstr是要匹配的字符串 这个表达式仅匹配整数,如果是整数形式返回true,否则为false 匹配小数格式的表达式: Reg...

UE中使用正则表达式的一些技巧

以下是网上摘录的UE 技巧 1)删除空行: 替换 %[ ^t]++^p 为 空串 2)删除行尾空格: 替换 [ ^t]+$ 为 空串 3)删除行首空格: 替换 %[ ^t]+ 为 空串 4)每行设置为固定的4个空格开头: 替换 %[ ^t]++^([~ ^t^p]^) 为 " ^1" 5)每段设置为固定的4个空格开头: 替换 %[ ^t]+ 为 " "...

Visual Studio Code快速删除空行及几个常用快捷键总结

在使用notepad++工具的时候,很多情况下我们会遇到批量替换空行的操作,之前的操作方法是快捷键Crtl+h调出窗口选择替换栏,在查找目标栏中输入 ,替换为 栏中输入 并选择全部替换,可实现批量删除空行的操作。随着Visual Studio Code的普及,之前notepad++好多内容想在vs code中实现,其中最常用的删除空行也是很有必要学习的。...

java正则表达式Pattern和Matcher

Pattern和Matcher java.util.regex 包(处理正则表达式) 提供了两个用来处理正则表达式的工具类:Pattern和Matcher。Pattern用于建立待匹配的正则表达式模型,Matcher用于在匹配完成后对匹配结果进行相应操作。 1.Pattern 1.1.Pattern.pattern() 返回正则表达式的字符串形式 Patt...