代码之家  ›  专栏  ›  技术社区  ›  Mehmet KILIÇ

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

  •  1
  • Mehmet KILIÇ  · 技术社区  · 7 年前

    我可以用以下格式区分logstash中的“msg”字段

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

    img1

    但保留区域“纬度”未处理

    img 2

    添加为字符串

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

    1 回复  |  直到 7 年前
        1
  •  0
  •   mihomir    7 年前

    仔细查看解析的值。我认为他们实际上并没有完全分开。分割字符周围的源数据中有空格 "|" ,所以当解析它时,实际上不会得到一个名为 "latitude" 但是 " latitude" .

    " longitude" => "29.08222 ", 
    

    你看到“经度”上的前导空格和值中的尾随空格了吗?

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

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

    最后,如果你确实需要这些空间,并且无法改变,你可以改变 "%{latitude}" "%{ latitude}"