我无法读取 Logstash 中的拆分字段

I can not read split fields in Logstash

我可以区分logstash中的"msg"字段,格式如下

filter {
   kv {
     field_split => "|"
         source => "msg"
   }
 }

正确分隔。

但是然后保留区"latitude"没有处理

添加为字符串

     " deviceValue" => "null ",
      **"test1" => "%{latitude}"**,
       " timeLabel" => "NOON ",
" appllicationName" => "null ",
       " longitude" => "29.08222 ",

感谢您的帮助

仔细查看解析后的值。我相信它们实际上没有正确分开。您在拆分字符 "|" 周围的源数据中有 spaces,因此当它被解析时,您实际上没有得到名为 "latitude" 的字段,而是 " latitude"。 来自你的 post:

" longitude" => "29.08222 ", 

您是否看到“经度”上的前导 space 和值中的尾随一个?

我假设您不需要这些,因此解决问题的一种方法是清除源数据中的空白space,然后使用您现有的脚本。
或者,如果您无法修改源数据,则可以将过滤器设置为在 " | ":

上拆分
filter {
   kv {
     field_split => " | "
         source => "msg"
   }
 }  

最后,如果您确实需要那些 space 并且无法更改它,您可以将 "%{latitude}" 更改为 "%{ latitude}"