【发布时间】:2014-01-07 20:54:30
【问题描述】:
我有一个日志文件,其中数据由管道符号分隔。 “|”。下面是一个例子。有谁知道如何编写 GROK 模式来将其提取到 logstash 中?
2014-01-07 11:58:48.7694|LOGLEVEL|LOGSOURCE|LOGMESSAGE
【问题讨论】:
我有一个日志文件,其中数据由管道符号分隔。 “|”。下面是一个例子。有谁知道如何编写 GROK 模式来将其提取到 logstash 中?
2014-01-07 11:58:48.7694|LOGLEVEL|LOGSOURCE|LOGMESSAGE
【问题讨论】:
您可以使用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}
【讨论】: