检查服务器状态时出现 Elasticsearch 503 错误
Posted
技术标签:
【中文标题】检查服务器状态时出现 Elasticsearch 503 错误【英文标题】:Elasticsearch 503 error when checking server status 【发布时间】:2013-09-06 11:45:36 【问题描述】:我一直在使用 elasticsearch 作为我的 Rails 应用程序的搜索引擎,但是由于我无法理解的原因,它停止了正常工作。当向 elasticsearch 服务器发出 curl 请求时,我收到 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"
我尝试通过重新加载elasticsearch服务并安装新版本来解决问题,但没有成功。
这是我在日志中发现的
[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
之后还有一个很长的 java 堆栈跟踪。我该如何解决这个问题?
【问题讨论】:
嗨,你可能想看看***.com/questions/19793516/… 【参考方案1】:您的本地网络中可能存在另一个实例,其中弹性搜索服务器已启动并正在运行。由于 elasticsearch 中的分片是从盒子中工作并默认启用的,因此可能存在主节点冲突。请查看您的 elasticsearch.log 文件。如果有类似
"error":"MasterNotDiscoveredException[waited for [30s]]","status":503
你应该去你的配置文件/etc/elasticsearch/elasticsearch.yml
并添加这一行:
discovery.zen.ping.multicast.enabled: false
【讨论】:
【参考方案2】:另外检查值
discovery.zen.ping.unicast.hosts
因为需要发现弹性节点
【讨论】:
期望值是多少? 您的主机列表,例如对于单节点使用 127.0.0.1:10101【参考方案3】:就我而言,我在运行 rails 服务器的终端上使用了代理。禁用代理并重新启动rails服务器后,问题解决了。
【讨论】:
【参考方案4】:安装 head 以便您可以更详细地查看状态。我认为 503 可能会在集群无法正常恢复时出现状态,例如丢失/不可恢复的分片
在elasticsearch目录下:
bin/plugin -install mobz/elasticsearch-head
然后在您的浏览器中:
http://127.0.0.1:9200/_plugin/head/
【讨论】:
如果状态为503,head插件无法从服务器获取信息。您只能读取日志文件。以上是关于检查服务器状态时出现 Elasticsearch 503 错误的主要内容,如果未能解决你的问题,请参考以下文章
在ui-router上更改状态时出现angularjs infdig错误(带视频)
尝试使用 WCF 服务时出现 System.Net.WebException
频繁检查 LWJGL/JInput 游戏手柄按钮或轴时出现延迟,如何解决?
使用带有 spring-data 的多个数据源(例如 DynamoDB 和 ElasticSearch)时出现红鲱鱼 Elasticsearch 错误