我有一个日志文件,其中数据由管道符号分隔。“|”。下面是一个例子。有谁知道如何编写一个 GROK 模式来将其提取到 logstash 中?
2014-01-07 11:58:48.7694|日志级别|日志源|日志消息
我有一个日志文件,其中数据由管道符号分隔。“|”。下面是一个例子。有谁知道如何编写一个 GROK 模式来将其提取到 logstash 中?
2014-01-07 11:58:48.7694|日志级别|日志源|日志消息
您可以使用gsub API 更改管道“|” 到空间并使用 GROK 来提取它。
例如:
filter {
grok {
match => ["message","%{DATESTAMP:time}\|%{WORD:LOGLEVEL}\|%{WORD:LOGSOURCE}\|%{WORD:LOGMESSAGE}"]
}
}
上面的配置是用你的日志在我身上工作的。希望这可以帮到你。
使用这个过滤器:
这个对我有用。使用此站点验证 grok 模式,https: //grokdebug.herokuapp.com/
(?<date>(([0-9]+)-*)+ ([0-9]+:*)+.*)\|%{WORD:LOGLEVEL}\|%{WORD:LOGSOURCE}\|%{WORD:LOGMESSAGE}
这对我有用
grok { match => ["message","%{DATESTAMP:time}\|%{WORD:LOGLEVEL}\|%{WORD:LOGSOURCE}\|%{WORD:LOGMESSAGE}"] }
LOGMESSAGE 部分可以包含很长的内容。为此,我推荐以下用法。
%{GREEDYDATA:LOGMESSAGE}