Erreur Elasticsearch 503 lors de la vérification de l'état du serveur
j'ai utilisé elasticsearch comme moteur de recherche pour mon application Rails, cependant il a cessé de fonctionner correctement en raison d'une raison que je ne peux pas comprendre. En faisant une requête curl à elasticsearch server j'obtiens une erreur 503.
curl -XGET http://localhost:9200
{
"ok" : true,
"status" : 503,
"name" : "Killpower",
"version" : {
"number" : "0.90.3",
"build_hash" : "5c38d6076448b899d758f29443329571e2522410",
"build_timestamp" : "2013-08-06T13:18:31Z",
"build_snapshot" : false,
"lucene_version" : "4.4"
},
"tagline" : "You Know, for Search"
}
j'ai essayé de résoudre le problème avec recharger le service elasticsearch et installer une nouvelle version sans aucun succès.
voici ce que j'ai trouvé dans logs
[2013-09-03 12:31:45,320][INFO ][node ] [Killpower] version[0.90.3],
pid[4222], build[5c38d60/2013-08-06T13:18:31Z]
[2013-09-03 12:31:45,321][INFO ][node ] [Killpower] initializing ...
[2013-09-03 12:31:45,327][INFO ][plugins ] [Killpower] loaded [], sites []
[2013-09-03 12:31:47,248][INFO ][node ] [Killpower] initialized
[2013-09-03 12:31:47,248][INFO ][node ] [Killpower] starting ...
[2013-09-03 12:31:47,313][INFO ][transport ] [Killpower] bound_address {inet[/0:0:0:0:0:0:0:0:9300]}, publish_address {inet[/172.20.46.32:9300]}
[2013-09-03 12:31:51,443][INFO ][discovery.zen ] [Killpower] master_left [[Amphibion][IMB4uACSTyOx3MO2u-FsWg][inet[/fe80:0:0:0:52e5:49ff:fec2:9718%2:9300]]], reason [do not exists on master, act as master failure]
[2013-09-03 12:31:51,446][INFO ][discovery ] [Killpower] elasticsearch/iavpGrMtRHmWLHMTNpscGQ
[2013-09-03 12:31:51,483][INFO ][http ] [Killpower] bound_address {inet[/0:0:0:0:0:0:0:0:9200]}, publish_address {inet[/172.20.46.32:9200]}
[2013-09-03 12:31:51,484][INFO ][node ] [Killpower] started
[2013-09-03 12:31:54,712][WARN ][transport.netty ] [Killpower] exception caught on transport layer [[id: 0xa929f24d, /127.0.0.1:50456 => /127.0.0.1:9300]], closing connection
après cela suit également un long StackTrace java. Comment puis-je résoudre le problème?
3 réponses
il pourrait y avoir une autre instance dans votre réseau local avec elasticsearch server en marche. Puisque les fragments dans elasticsearch fonctionnent à partir de la boîte et activés par défaut, il pourrait y avoir un conflit de noeud maître. Veuillez consulter votre elasticsearch.le fichier de log. Si il y a quelque chose comme
{"error":"MasterNotDiscoveredException[waited for [30s]]","status":503}
vous devriez aller à votre fichier de configuration /etc/elasticsearch/elasticsearch.yml
et ajouter cette ligne:
discovery.zen.ping.multicast.enabled: false
en plus, cochez la valeur
discovery.zen.ping.unicast.hosts
parce qu'il faut découvrir des noeuds élastiques
installez head pour que vous puissiez voir le statut plus en détail. Je pense 503 peuvent apparaître dans l'état lorsque le cluster ne récupère pas correctement, par exemple perdus/non récupérables fragment
bin/plugin -install mobz/elasticsearch-head
Puis dans votre navigateur:
http://127.0.0.1:9200/_plugin/head/