1

我的日志文件具有以下形式的行:

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

在哪里

  • modulename是一个字符串
  • pid是一个整数
  • debug level string是一个字符串,如 "debug" 或 "info" 或 "error"
  • message string是一个字符串
  • xyz value是一个整数

例子:

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

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

4

1 回答 1

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}

于 2014-10-15T22:37:54.090 回答