具有空值的 Logstash 字段
Logstash field with a null fvalue
我正在使用 logstash 解析如下值:
|SERVLETSESSIONS=|
我要捕捉它的一点是:
\|SERVLETSESSIONS=(?<servlet_sessions>[0-9]*)\|
我没有收到错误,我的所有其他字段都匹配,但我认为我应该在我的 stdout { codec => rubydebug } }
中得到一个空值,如 "servlet_sessions" => ""
,但我没有 [=14] =] 那里的关键。
有什么想法吗?
我认为您正在寻找 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" => ""
}
我正在使用 logstash 解析如下值:
|SERVLETSESSIONS=|
我要捕捉它的一点是:
\|SERVLETSESSIONS=(?<servlet_sessions>[0-9]*)\|
我没有收到错误,我的所有其他字段都匹配,但我认为我应该在我的 stdout { codec => rubydebug } }
中得到一个空值,如 "servlet_sessions" => ""
,但我没有 [=14] =] 那里的关键。
有什么想法吗?
我认为您正在寻找 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" => ""
}