我的日志文件包含以下格式的行:
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中可以使用什么过滤器来解析这些日志吗?
答案 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}