由管道分隔的数据的Grok模式

时间:2014-01-07 20:54:31

标签: logstash logstash-grok

我有一个日志文件,其中数据由管道符号分隔。 “|”。一个例子如下。有谁知道如何编写GROK模式来提取它为logstash?

2014-01-07 11:58:48.7694 | LOGLEVEL | LOGSOURCE | LOGMESSAGE

3 个答案:

答案 0 :(得分:11)

您可以使用gsub API更改管道“|”空间和使用GROK来提取它。

例如:

filter {
    mutate {
            gsub => ["message","\|"," "]
    }

    grok {
            match => ["message","%{DATESTAMP:time} %{WORD:LOGLEVEL} %{WORD:LOGSOURCE} %{WORD:LOGMESSAGE}"]
    }
}

以上配置适用于我的日志。希望这可以帮到你。

答案 1 :(得分:6)

使用此过滤器:

它对我有用。使用此网站验证grok patern,https://grokdebug.herokuapp.com/

(?<date>(([0-9]+)-*)+ ([0-9]+:*)+.*)\|%{WORD:LOGLEVEL}\|%{WORD:LOGSOURCE}\|%{WORD:LOGMESSAGE}

答案 2 :(得分:1)

这对我有用

grok { match => ["message","%{DATESTAMP:time}\|%{WORD:LOGLEVEL}\|%{WORD:LOGSOURCE}\|%{WORD:LOGMESSAGE}"] }