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.
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
}
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
).
Essayez de supprimer votre index et de le créer à nouveau. Aide parfois.
Ou peut-être essayez-vous d'interroger un champ int
et string
dans la même requête.