你有两个问题。首先,您的grok过滤器会在csv过滤器之前列出,并且由于应用了过滤器是为了在应用grok过滤器时不会出现要转换的“基本”字段。
其次,除非您明确允许,否则grok不会覆盖现有字段。换一种说法,
grok{
match => [
"Basic", " %{NUMBER:Basic:float}"
]
}
永远是空话。指定overwrite => ["Basic"]
或最好使用mutate的类型转换功能:
mutate {
convert => ["Basic", "float"]
}