Logstash grok 过滤数据为 NUMBER,但为什么 Kibana 中过滤后的数据仍然显示为 String

Logstash grok filtered data as NUMBER, but why the filtered data in Kibana still dislay as String

作为一个elk新手,我在Logstash中使用grok filter将数字数据过滤为一个字段:%{NUMBER:duration}。但是当我使用 Kibana 浏览过滤后的数据时,我从它的设置选项卡中看到字段 - duration - 仍然是 Sting 数据类型。

我确实需要这个字段作为 Number 数据类型,也在 Kibana Web 控制台中,以便我可以在可视化中使用它。任何人都知道如何解决这个问题?提前致谢

从 Logstash 到 Elasticsearch 的所有字段都存储为字符串。如果您想更改数据类型,您需要在 Logstash 配置文件中明确提及它。

假设您的字段名称是持续时间,在过滤器内的 Logstash 配置文件中使用 mutate 过滤器将字段从字符串转换为整数。如下所示:-

mutate {
convert => { "duration" => "integer" }
       }

它现在将在 Elasticsearch 中将持续时间字段存储为整数,您可以在 Kibana 中将其可视化为整数字段。