"(关键)字段[@timestamp]未找到"重启elasticsearch节点后

时间:2014-10-10 19:22:01

标签: elasticsearch logstash kibana

我正在尝试使用logstash将文档提供给elasticsearch,然后我可以使用kibana web界面进行查询。我目前正在运行一个由logstash尾随apache访问日志提供的弹性搜索节点,以便进行测试,以便我可以在扩展到群集中的多个elasticsearch节点之前学习如何使用logstash和elasticsearch,并使用logstash在多个主机和服务之间记录聚合。

我昨晚通过使用logstash提供文档来成功构建ES数据库,并且我能够使用kibana查询它。但是,今天,当我再次启动ES节点时,我在尝试运行查询时看到以下错误:

[2014-10-10 13:11:53,437][DEBUG][action.search.type       ] [Madam Slay] All shards failed for phase: [query]

(完整日志可用here。)

我的节点的健康状况似乎很好:

[pitserver ~/local/tmp/elasticsearch-1.3.4]% curl -XGET "http://localhost:9200/_cluster/health?pretty=true"
{
  "cluster_name" : "elasticsearch",
  "status" : "yellow",
  "timed_out" : false,
  "number_of_nodes" : 1,
  "number_of_data_nodes" : 1,
  "active_primary_shards" : 2520,
  "active_shards" : 2520,
  "relocating_shards" : 0,
  "initializing_shards" : 0,
  "unassigned_shards" : 2520
}

我尝试多次重启节点。 data目录表面上包含与昨天相同的数据。

在了解了kibana如何查询elasticsearch后,我相信日志文件中最相关的错误就是这个:

(key) field [@timestamp] not found

我了解到,当尝试绘制包含与elasticsearch中现有logstash索引不对应的日期的直方图时,会弹出此错误。我找到了(closed) issue report on kibana's GitHub page that describes the problem I am having。解决方法是仅针对与弹性搜索数据库中现有logstash索引相对应的日期绘制直方图。

对我来说没有意义的是我能够通过昨天的时间戳字段进行查询。但是,弹性搜索在重新启动elasticsearch集群后,今天不存在时间戳字段存在问题。

为什么我在重新启动elasticsearch后才会看到这个问题?

1 个答案:

答案 0 :(得分:0)

你有相同数量的unassigned_shards,它们看起来像副本?尝试禁用副本以返回到绿色的群集状态,重试是我的建议。