web-dev-qa-db-fra.com

SearchPhaseExecutionException [Echec de l'exécution de la phase [requête], échec de tous les fragments]

Récemment, notre serveur a été redémarré sans arrêter correctement Elastic Search/Kibana. Après ce redémarrage, les deux applications étaient en cours d'exécution mais aucun index n'était créé. J'ai vérifié la configuration de logstash en mode débogage et l'envoi de données à Elastic Search.

maintenant toutes mes fenêtres créées signalent cette erreur:

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

J'ai essayé de redémarrer Elastic Search/Kibana et j'ai effacé certains index. J'ai cherché beaucoup mais je n'ai pas pu résoudre ce problème correctement. 

L'état d'intégrité actuel du cluster est ROUGE, comme indiqué dans l'image.

Elastic Search Cluster Health

Toute aide quant à la façon de résoudre ce problème est votée. Je vous remercie

MODIFIER:

[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)

ce qui me concerne dans les logs c'est:

[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
}
12
RayofCommand

Vous avez beaucoup de fichiers translog corrompus, que vous devez supprimer. Vous pouvez le trouver dans data/{clustername}/nodes/0/indices/logstash-2015.04.21/4/translog et un autre dans data/{clustername}/nodes/0/indices/logstash-2015.03.16/1/translog. Et peut-être d'autres, mais c'est ce que je peux dire à partir de l'extrait que vous avez fourni. Bien sûr, perdra ce qui est dans les fichiers du translog.

Si les index ne contiennent plus de fichiers d'index (seul le dossier _state existe sous data/{clustername}/nodes/0/indices/[index_name]), cela signifie qu'il n'y a plus de données dans cet index et que vous pouvez alors supprimer l'index. Vous devez réindexer ces données, si vous en avez toujours besoin. Si vous décidez de supprimer les index, vous devez arrêter le nœud et supprimer les dossiers d'index sous data/{clustername}/nodes/0/indices qui ressemblent à celui que vous avez mentionné (vide, ne contenant que le dossier _state).

11
Andrei Stefan
  1. Essayez de supprimer votre index et de le créer à nouveau. Aide parfois.

  2. Ou peut-être essayez-vous d'interroger un champ int et string dans la même requête.

0
Tadej