我有一个格式如下的文件:
10302\t<document>.....</document>
12303\t<document>.....</document>
10054\t<document>.....</document>
10034\t<document>.....</document>
正如您所看到的,有两个值由制表符char分隔。我需要
是否有可能使用kv过滤器分离这两个值?理想情况下,对于每一行,我应该用这样的文档结束:
id:10302
msg:<document>....</document>
我可以使用grok过滤器,但我想避免使用任何正则表达式,因为字段检测非常简单,并且可以使用简单的键值逻辑来完成。但是,使用普通kv检测我结束以下内容:
"10302": <document>.....</document>
"12303": <document>.....</document>
"10054": <document>.....</document>
"10034": <document>.....</document>
这不是我想要的。
答案 0 :(得分:0)
据我所知,不可能将kv用于你想要的工作,因为id没有可能的密钥(10302,10303,10304 ......)。没有可能的密钥,因为id之前没有任何内容。
这个grok配置可行,假设每个id +文档在同一行:
grok {
match => { "message" => "^%{INT:ID}\t%{GREEDYDATA:msg}"}
}