logstash的grok过滤器

时间:2014-10-15 19:34:38

标签: logstash syslog grok

我的日志文件包含以下格式的行:

10/13 14:05:18.192 [modulename]: [pid]: (debug level string): message string XYZ:<xyz value>

其中

  • modulename是一个字符串
  • pid是一个整数
  • debug level string是一个字符串,如&#34; debug&#34;或&#34;信息&#34;或&#34;错误&#34;
  • message string是一个字符串
  • xyz value是一个整数

示例:

10/13 14:05:18.192 [MyModule]: [12345]: (debug): This is my message. XYZ: 987

我四处搜寻并尝试了一些事情,但我得到了_grokparsefailure。有人可以帮我告诉我在logstash中可以使用什么过滤器来解析这些日志吗?

1 个答案:

答案 0 :(得分:0)

首先{GREEDYDATA}表示记录事件结束。因此,dbg_lvl之后的所有文字都将分配到{GREEDYDATA}

在这里,尝试以下代码。您的代码过滤器的问题是它无法在msg之后解析任何内容。希望这会有所帮助。

(?<date>\d\d/\d\d) %{TIME:time} \[%{WORD:module}\]: \[%{WORD:pid}\]: \(%{WORD:log_level}\): %{CISCO_REASON}. %{WORD}: %{BASE10NUM:xyz_number}