问题描述
-
我为Elasticsearch索引拍摄了手动快照
-
这些存储在S3的快照存储库中
-
我创建了一个新的ES集群,版本6.3
-
我已通过本博客文章https://medium.com/docsapp-product-and-technology/aws-elasticsearch-manual-snapshot-and-restore-on-aws-s3-7e9783cdaecb
中提到的python脚本方法将新集群连接到S3快照存储库。 -
我已经确认新集群可以通过
GET /_snapshot/manual-snapshot-repo/_all?pretty
命令访问快照存储库 -
我已经通过以下方式启动了快照还原到这个新集群的操作:
POST / _snapshot / manual-snapshot-repo / snapshot_name / _restore { “ indices”:“报告”, “ ignore_unavailable”:否, “ include_global_state”:false }
-
很明显,此操作至少部分成功了,因为群集状态已从“绿色”变为“黄色”,并且对
/_cluster/health
的GET请求产生的信息表明在某个群集上正在发生操作否则,空集群...更不用说存储开始被利用(在AWS上查看集群运行状况时)。 -
我非常想监视还原操作的进度。
-
Elasticsearch文档建议使用Recovery API。文件连结:https://www.elastic.co/guide/en/elasticsearch/reference/6.3/indices-recovery.html
-
从文档中可以清楚地看出,
GET /_recovery?human
或GET /my_index/_recovery?human
应该产生恢复进度。
但是,我遇到以下错误:
"Message": "Your request: '/_recovery' is not allowed."
通过以下方式尝试GET命令时,我会收到相同的消息:
- 通过Kibana开发工具
- 通过chrome地址栏(毕竟,这只是一个GET操作)
- 通过高级REST客户端(Chrome应用)
我无法找到此特定错误消息的其他任何提及。
如何在ElasticSearch 6.3群集上使用GET /_recovery?human
命令?
谢谢!
解决方法
Amazon托管的Elasticsearch并没有所有可用的终端节点。
对于6.3版,您可以检查this link中可用的端点,而_recovery
不在列表中,这就是为什么收到该消息的原因。
没有_recovery
端点,您将需要依靠_cluster/health
。