在kibana仪表板中遇到问题 - 设置fielddata = true

时间:2017-02-28 11:06:52

标签: kibana elastic-stack kibana-5 metricbeat

我使用metricbeat获取docker性能数据,我正在尝试使用Docker性能数据生成Dashboards。

我在Kibana仪表板中遇到的错误: enter image description here

我在metricbeat.template.json中启用了fielddata:true: enter image description here

然后我重新开始Metricbeat和Kibana并开始了。 问题仍然存在。这是三个错误:

@Configuration
@EnableCaching
public class RedisConfig extends CachingConfigurerSupport {
    @Bean
    public CacheManager cacheManager(@SuppressWarnings("rawtypes") RedisTemplate redisTemplate) {
        return new RedisCacheManager(redisTemplate);
    }
    @Bean
    public RedisTemplate<String, String> redisTemplate(RedisConnectionFactory factory) {
        StringRedisTemplate template = new StringRedisTemplate(factory);
        Jackson2JsonRedisSerializer jackson2JsonRedisSerializer = new Jackson2JsonRedisSerializer(Object.class);
        ObjectMapper om = new ObjectMapper();
        om.setVisibility(PropertyAccessor.ALL, JsonAutoDetect.Visibility.ANY);
        om.enableDefaultTyping(ObjectMapper.DefaultTyping.NON_FINAL);
        jackson2JsonRedisSerializer.setObjectMapper(om);
        template.setValueSerializer( jackson2JsonRedisSerializer);
        template.afterPropertiesSet();
        return template;
    }
}

任何人都可以帮忙解决问题吗?

提前致谢。

2 个答案:

答案 0 :(得分:0)

您可能需要更改字段mappingsname,id,image),方法是将 fielddata 设置为 true 。您的映射可能如下所示:

{
  "mappings": {
    "your_type": {
      "properties": {
        "name": {
          "type": "text",
          "fielddata": true
        },
        "id": {
          "type": "integer",
          "fielddata": true
        },
        "image": {
          "type": "text",
          "fielddata": true
        }
      }
    }
  }
}

同时查看doc。希望这有帮助!

修改

我想问题是使用文字类型进行聚合,理想情况下会导致上述异常。文本类型字段本质上是analyzed,通常可用于全文搜索。如果您考虑使用未分析 keyword进行聚合目的,这可能会对您有所帮助。您还可以阅读有关此here的更多信息,并查看此ticket,其中涉及同样的争议。

答案 1 :(得分:0)

这是我尝试的映射:

PUT /metricbeat-*/_mapping/docker
{
  "properties":{
    "container":{
      "type":"text",
      "fields":{
        "name":{
          "type": "text",
          "analyzer": "standard",
          "fielddata": true
        },
        "id":{
          "type":"keyword"
        },
        "image":{
          "type": "text",
                    "fielddata": true
        }
      }
    }
  }
}

映射有效。 但是,我现在得到一个不同的错误 - Courier Fetch:40个分片中的30个失败