elasticsearch 麋鹿类型转换-不是数字而是字符串,elasticsearch,logstash,kibana,elasticsearch,Logstash,Kibana" /> elasticsearch 麋鹿类型转换-不是数字而是字符串,elasticsearch,logstash,kibana,elasticsearch,Logstash,Kibana" />

elasticsearch 麋鹿类型转换-不是数字而是字符串

elasticsearch 麋鹿类型转换-不是数字而是字符串,elasticsearch,logstash,kibana,elasticsearch,Logstash,Kibana,我正在尝试设置一个elk仪表板,以查看一些数字,如总字节数、平均加载时间等。我在logstash中强制进行一些转换,以确保这些字段不是字符串 convert => [ "bytes", "integer" ] convert => [ "seconds", "float" ] convert => [ "milliseconds", "integer" ] 那些Logstash转换正在工作。请参阅我的logstash.log中的摘录。Statuscode是一个字符串,字节。。

我正在尝试设置一个elk仪表板,以查看一些数字,如总字节数、平均加载时间等。我在logstash中强制进行一些转换,以确保这些字段不是字符串

convert => [ "bytes", "integer" ]
convert => [ "seconds", "float" ]
convert => [ "milliseconds", "integer" ]
那些Logstash转换正在工作。请参阅我的logstash.log中的摘录。Statuscode是一个字符串,字节。。。是数字吗

"http_statuscode" => "200",
"bytes" => 2731,
"seconds" => 0.0,
"milliseconds" => 9059,
但当我尝试使用avg、min、max和total bytes(例如elasticsearch)构建仪表板时,会记录以下内容:

Facet [stats]: field [bytes] isn't a number field, but a string
我是否错过了某种转换或其他什么?有人已经体验过这种行为吗


谢谢gus Yan和问候。Sebastian最近解决了这个问题(我的意思是在Kibana中使用字节或请求时间作为数字,我使用v4 beta 3和你?)。以下三点可能对您有所帮助:

  • 如何解析日志?使用Grok过滤器?如果是,您可以尝试将日志与以下模式匹配
    %{INT:bytes:INT}
    ,而不是使用convert筛选器
  • 在完成更改后,是否在Kibana4(设置->索引)中“重新加载字段列表”(黄色按钮)
  • 如果ES群集中有旧索引,是否正确删除了这些索引?否则,旧类型和新类型之间可能存在一些冲突

  • 希望能有所帮助。

    一个可能的问题是,索引中字段的映射是在将第一个文档插入索引时设置的。更改映射不会更新索引中的任何旧文档,也不会影响插入到该索引中的任何新文档

    如果您正在开发中,最简单的方法就是删除索引(从而删除您以前的数据)。任何新文档都将使用新映射

    如果你不能扔掉旧数据,你可以等到明天,那时你会得到一个新的索引

    如果有必要,你也可以重建索引,但我一直觉得这很痛苦


    另一种可能性是,您在同一索引中的不同类型中具有相同的字段名和不同的映射。[重复几次,就有意义了]。字段[foo]在同一索引的每种类型中都必须具有相同的映射定义。

    请注意,您必须更改映射模板,而不是索引的映射:此处的详细信息:等待一天就可以了。我没有意识到索引字段类型只设置了一次,并确定了整个索引的类型。第二天的新索引包含整数字段。谢谢你的帮助。