我无法读取 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}"
。
我可以区分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}"
。