【问题标题】:Logstash grok filtered data as NUMBER, but why the filtered data in Kibana still dislay as StringLogstash grok过滤数据为NUMBER,但是为什么Kibana中过滤后的数据仍然显示为String
【发布时间】:2016-06-09 19:57:17
【问题描述】:

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

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

【问题讨论】:

    标签: elastic-stack


    【解决方案1】:

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

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

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

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

    【讨论】:

    • 我从你那里得到了很好的提示!非常感谢,但请参考这个链接,在你的提示后我找到了。 @ 987654321@ 在此链接中,格式与您的答案大不相同,例如在logstash 站点中,他们将mutate convert 类型定义为数组以外的哈希,而您给出了数组类型。所以请修改它,然后我检查这个作为正确答案:)
    • 您好我已经尝试使用上述语法并且它正在转换。虽然我同意它是一个哈希类型,但在这种情况下它也接受一个数组。如果它适用于您的情况,您可以尝试使用上述语法吗?
    • 太棒了!我批准了:)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-11-19
    • 2013-11-20
    • 1970-01-01
    • 2019-06-10
    • 2021-11-08
    • 1970-01-01
    相关资源
    最近更新 更多