SearchPhaseExecutionException [Не удалось выполнить фазу [запрос], все осколки не сработали]

Недавно наш сервер был перезагружен без правильного закрытия Elastic Search/Kibana. После этой перезагрузки оба приложения работали, но никаких индексов не создавалось больше. Я проверил настройку logstash в режиме отладки и отправил данные в Elastic Search.

теперь все мои созданные окна сообщают об этой ошибке:

Oops! SearchPhaseExecutionException[Failed to execute phase [query], all shards failed]

Я попытался перезапустить Elastic Search/Kibana и очистил некоторые индексы. Я много искал, но не смог правильно устранить это.

Состояние здоровья текущего кластера является КРАСНЫМ, как показано на рисунке.

Elastic Search Cluster Health

Любая помощь по устранению неполадок поддерживается. Спасибо вам

EDIT:

[2015-05-06 00:00:01,561][WARN ][cluster.action.shard     ] [Indech] [logstash-2015.03.16][1] sending failed shard for [logstash-2015.03.16][1], node[fdSgUPDbQB2B3NQqX7MdMQ], [P], s[INITIALIZING], indexUUID [aBcfbqnNR4-AGEdIR8dVdg], reason [Failed to start shard, message [IndexShardGatewayRecoveryException[[logstash-2015.03.16][1] failed to recover shard]; nested: ElasticsearchIllegalArgumentException[No version type match [101]]; ]]
[2015-05-06 00:00:01,561][WARN ][cluster.action.shard     ] [Indech] [logstash-2015.03.16][1] received shard failed for [logstash-2015.03.16][1], node[fdSgUPDbQB2B3NQqX7MdMQ], [P], s[INITIALIZING], indexUUID [aBcfbqnNR4-AGEdIR8dVdg], reason [Failed to start shard, message [IndexShardGatewayRecoveryException[[logstash-2015.03.16][1] failed to recover shard]; nested: ElasticsearchIllegalArgumentException[No version type match [101]]; ]]
[2015-05-06 00:00:02,591][WARN ][indices.cluster          ] [Indech] [logstash-2015.04.21][4] failed to start shard
org.elasticsearch.index.gateway.IndexShardGatewayRecoveryException: [logstash-2015.04.21][4] failed to recover shard
    at org.elasticsearch.index.gateway.local.LocalIndexShardGateway.recover(LocalIndexShardGateway.java:269)
    at org.elasticsearch.index.gateway.IndexShardGatewayService$1.run(IndexShardGatewayService.java:132)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
    at java.lang.Thread.run(Thread.java:744)
Caused by: org.elasticsearch.ElasticsearchIllegalArgumentException: No version type match [52]
    at org.elasticsearch.index.VersionType.fromValue(VersionType.java:307)
    at org.elasticsearch.index.translog.Translog$Create.readFrom(Translog.java:364)
    at org.elasticsearch.index.translog.TranslogStreams.readTranslogOperation(TranslogStreams.java:52)
    at org.elasticsearch.index.gateway.local.LocalIndexShardGateway.recover(LocalIndexShardGateway.java:241)

что меня интересует в логике:

[2015-05-06 15:13:48,059][DEBUG][action.search.type       ] All shards failed for phase: [query]



{
  "cluster_name" : "elasticsearch",
  "status" : "red",
  "timed_out" : false,
  "number_of_nodes" : 8,
  "number_of_data_nodes" : 1,
  "active_primary_shards" : 120,
  "active_shards" : 120,
  "relocating_shards" : 0,
  "initializing_shards" : 0,
  "unassigned_shards" : 310
}

Ответ 1

У вас много коррумпированных транслоговых файлов, которые нужно удалить. Вы можете найти его в data/{clustername}/nodes/0/indices/logstash-2015.04.21/4/translog и еще один в data/{clustername}/nodes/0/indices/logstash-2015.03.16/1/translog. И, возможно, другие, но это то, что я могу сказать из предоставленного вами фрагмента. Конечно, потеряет то, что находится в файлах translog.

Если индексы больше не имеют индексных файлов (в data/{clustername}/nodes/0/indices/[index_name] существует только _state), это означает, что в этом индексе больше нет данных, и на этом этапе вы можете удалить индекс. Вам нужно переиндексировать эти данные, если вам все еще нужно. Если вы решите удалить индексы, вам нужно отключить node и удалить индексные папки под data/{clustername}/nodes/0/indices, которые похожи на тот, который вы упомянули (пустой, содержащий только папку _state).