我正在尝试使用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后才会看到这个问题?
答案 0 :(得分:0)
你有相同数量的unassigned_shards,它们看起来像副本?尝试禁用副本以返回到绿色的群集状态,重试是我的建议。