查找日志文件的 grok 模式
Finding grok pattern for Log files
我有一个格式的日志文件:
root 2 0.0 0.0 0 0 ? S 17:28 0:00 [kthreadd]
我不知道如何读取由 :
分隔的时间戳。
到目前为止,我能够实现的 grok 模式是:
%{WORD:user}\s*%{NUMBER:pid}\s*%{BASE16FLOAT:cpu}\s*%{BASE16FLOAT:mem}\s*%{NUMBER:vsz}\s*%{NUMBER:rss} \?\s* %{WORD,:stat}\s*
请在下面找到与您的输入日志匹配的 grok 模式:
%{WORD:user}\s*%{BASE10NUM:pid}\s*%{BASE10NUM:cpu}\s*%{BASE10NUM:mem}\s*%{BASE10NUM:vsz}\s*%{BASE10NUM:rss} \?\s*%{WORD,:stat}\s*(?<time>([0-1]?[0-9]|2[0-3]):[0-5][0-9])\s*(?<time2>([0-1]?[0-9]|2[0-3]):[0-5][0-9])\s*\[%{DATA:username}\]
我用过Grok + Oniguruma
的组合
鬼车
oniguruma 语法如下:
(?<field_name>the pattern here)
- field_name是关键
- 此处的模式 是您输入正则表达式模式的地方
Grok + Oniguruma
您可以像下面这样组合 Grok 和 Oniguruma:
%{SYNTAX:SEMANTIC} (?<field_name>the pattern here)
我已经使用 Grok Debugger 来验证 grok 模式。另外,在下面找到 grok 模式的输出。
我有一个格式的日志文件:
root 2 0.0 0.0 0 0 ? S 17:28 0:00 [kthreadd]
我不知道如何读取由 :
分隔的时间戳。
到目前为止,我能够实现的 grok 模式是:
%{WORD:user}\s*%{NUMBER:pid}\s*%{BASE16FLOAT:cpu}\s*%{BASE16FLOAT:mem}\s*%{NUMBER:vsz}\s*%{NUMBER:rss} \?\s* %{WORD,:stat}\s*
请在下面找到与您的输入日志匹配的 grok 模式:
%{WORD:user}\s*%{BASE10NUM:pid}\s*%{BASE10NUM:cpu}\s*%{BASE10NUM:mem}\s*%{BASE10NUM:vsz}\s*%{BASE10NUM:rss} \?\s*%{WORD,:stat}\s*(?<time>([0-1]?[0-9]|2[0-3]):[0-5][0-9])\s*(?<time2>([0-1]?[0-9]|2[0-3]):[0-5][0-9])\s*\[%{DATA:username}\]
我用过Grok + Oniguruma
的组合鬼车
oniguruma 语法如下:
(?<field_name>the pattern here)
- field_name是关键
- 此处的模式 是您输入正则表达式模式的地方
Grok + Oniguruma
您可以像下面这样组合 Grok 和 Oniguruma:
%{SYNTAX:SEMANTIC} (?<field_name>the pattern here)
我已经使用 Grok Debugger 来验证 grok 模式。另外,在下面找到 grok 模式的输出。