Kibana/Elasticsearch 中不支持字段类型

Kibana/Elasticsearch 中不支持字段类型

我正在为 Java 应用程序使用 logstash 插件,该插件使用 logback 将日志转发到我的 logstash 服务器。我设置了一个过滤器定义,如下所示:

input {
  tcp {
    port => 2856
    codec => json_lines
  }
}

filter {
  mutate {
    convert => {
      "tenantId" => "integer"
      "userId" => "integer"
    }
  }
}

使用以下配置将日志转发到 Elasticsearch:

output {
  elasticsearch {
    hosts => ["127.0.0.1:9200"]
    user => "user"
    password => "secure"
  }
}

索引只是转到 logstash-,当我检查 Elasticsearch 中的映射时,我看到以下内容:

  "logstash-2016.04.25" : {
      "mappings" : {
         "logs" : {
            "_all" : {
               "omit_norms" : true,
               "enabled" : true
            },
            "properties" : {
               ...
               "userId" : {
                  "type" : "long"
               },
               "tenantId" : {
                  "type" : "long"
               },
               ...
            }
         }
      }
   }

因此,我可以看到字段被设置为适当的类型,但是当我检查 Kibana 时,它们既没有被分析也没有被定义为长值。我遗漏了什么?

答案1

假设这些是给定索引中的新字段,您需要告诉 Kibana刷新这是字段列表。

重新加载索引字段列表

当您添加索引映射时,Kibana 会自动扫描与模式匹配的索引以显示索引字段列表。您可以重新加载索引字段列表以选取任何新添加的字段。

重新加载索引字段列表还会重置 Kibana 的字段流行度计数器。流行度计数器会跟踪您在 Kibana 中最常使用的字段,并用于对列表中的字段进行排序。

要重新加载索引字段列表:

  1. 前往设置 > 指数标签。
  2. 从索引模式列表中选择一个索引模式。
  3. 点击图案的重新加载按钮。

相关内容