我注意到有些人在 grok 匹配谓词中使用第三部分,比如
%{NUMBER:response_status:int}
^--- ??
前 2 的含义很明显,我可以猜到第三是结果的明确类型,但我找不到关于第三部分是什么的全面解释。
我检查了Logstash 文档和Grok 的文档,看不到任何综合语法描述的痕迹。
有参考吗?
更新:
这是一个有效且语法正确的示例:
对于配置文件:
input { stdin { } }
filter {
grok {
match => [
"message", "%{NUMBER:a_number:float}"
]
}
}
output { stdout { codec => rubydebug } }
的输出12345
是:
{
"message" => "12345",
"@version" => "1",
"@timestamp" => "2014-10-08T01:08:49.087Z",
"host" => "logstash",
"a_number" => 12345.0
}
如果您删除:float
,则它将更改为
{
"message" => "12345",
"@version" => "1",
"@timestamp" => "2014-10-08T01:09:46.055Z",
"host" => "logstash",
"a_number" => "12345"
}
至少 logstash v1.4.2 是这样