我可以区分" msg" logstash中的字段采用以下格式
filter {
kv {
field_split => "|"
source => "msg"
}
}
适当分开。
然后保留区"纬度"未处理
添加为字符串
" deviceValue" => "null ",
**"test1" => "%{latitude}"**,
" timeLabel" => "NOON ",
" appllicationName" => "null ",
" longitude" => "29.08222 ",
感谢您的帮助
答案 0 :(得分:0)
仔细查看已解析的值。我相信它们实际上并没有完全分开。您在拆分字符"|"
周围的源数据中有空格,因此在解析时,您实际上没有得到名为"latitude"
但" latitude"
的字段。
从你的帖子:
" longitude" => "29.08222 ",
您是否看到“经度”的前导空格和值中的尾随空格?
我假设您不需要这些,因此解决问题的一种方法是从源数据中清除空白,然后使用现有脚本。
或者,如果您无法修改源数据,则可以将过滤器设置为在" | "
上分割:
filter {
kv {
field_split => " | "
source => "msg"
}
}
最后,如果您确实需要这些空格并且无法更改,则可以将"%{latitude}"
更改为"%{ latitude}"
。