2015-09-09 57 views
0

我使用logstash解析的值等Logstash場:用空F值

|SERVLETSESSIONS=|

我有點捕捉到它是:

\|SERVLETSESSIONS=(?<servlet_sessions>[0-9]*)\|

我沒有得到一個錯誤和所有其他字段匹配,但我認爲我應該在我的stdout { codec => rubydebug } }中得到一個空值,例如"servlet_sessions" => "",但我沒有servlet_sessions密鑰。

任何想法?

回答

1

我認爲您正在尋找Grok過濾器配置的keep_empty_captures參數。

input { stdin { } } 

filter { 
    grok { 
    keep_empty_captures => true 
    match => { "message" => "\|SERVLETSESSIONS=(?<servlet_sessions>[0-9]*)\|" } 
    } 
} 

output { stdout { codec => rubydebug } } 

上述結構產生以下輸出:

{ 
      "message" => "|SERVLETSESSIONS=|", 
     "@version" => "1", 
     "@timestamp" => "2015-09-09T13:44:52.754Z", 
      "host" => "localhost", 
"servlet_sessions" => "" 
} 
+0

可以是評論 –

+0

同意:)冗長++ – PhaedrusTheGreek