Elasticsearch 6.3AWS快照还原进度错误:“不允许使用/ _recovery”

问题描述

  • 我为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?humanGET /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