Elasticsearch Snapshot因RepositoryMissingException失败

时间:2014-09-03 20:00:22

标签: amazon-web-services amazon-ec2 elasticsearch

AWS上的三个节点ElasticSearch集群。 Bigdesk和Head都展示了一个健康的集群。所有三个节点都运行ES 1.3,并且最新的Amazon Linux更新。当我启动快照请求时,例如:

http://localhost:9200/_snapshot/taxanalyst/201409031540-snapshot?wait_for_completion=true

在响应以下内容之前,服务器会搅拌几分钟:

{
  "snapshot": {
    "snapshot": "201409031521-snapshot",
    "indices": [
      "docs",
      "pdflog"
    ],
    "state": "PARTIAL",
    "start_time": "2014-09-03T19:21:36.034Z",
    "start_time_in_millis": 1409772096034,
    "end_time": "2014-09-03T19:28:48.685Z",
    "end_time_in_millis": 1409772528685,
    "duration_in_millis": 432651,
    "failures": [
      {
        "node_id": "ikauhFYEQ02Mca8fd1E4jA",
        "index": "pdflog",
        "reason": "RepositoryMissingException[[faxmanalips] missing]",
        "shard_id": 0,
        "status": "INTERNAL_SERVER_ERROR"
      }
    ],
    "shards": {
      "total": 10,
      "failed": 1,
      "successful": 9
    }
  }
}

这是三台不同虚拟EC2机器上的三个节点,但它们能够通过9300/9200进行通信而不会出现任何问题。索引和搜索按预期工作。弹性搜索日志文件中似乎没有任何与服务器错误相关的内容。

有谁知道这里发生了什么,或者至少知道一个好的起点在哪里?

更新:原来,群集中的每个节点都需要拥有与使用elasticsearch集群注册快照时指定的目录相匹配的快照目录。

我想下一个问题是:当您想要创建快照目录以便将其归档或配置备份群集时,只需在主节点上创建快照目录就足够了吗?或者你必须以某种方式整合所有节点的快照目录。 (那可能是对的,不是吗?)

2 个答案:

答案 0 :(得分:2)

Elasticsearch支持共享文件系统存储库使用共享文件系统来存储快照。              为了注册共享文件系统存储库,必须将相同的共享文件系统安装到所有主节点和数据节点上的相同位置。

您需要知道的所有3个节点的elasticsearch.yml相同的repository_name。              例如: -                  path.repo:[/ my_repository] ​​

答案 1 :(得分:0)

我认为你正在为elasticsearch寻找这个aws插件(我想你已经安装了它来配置你的集群):https://github.com/elasticsearch/elasticsearch-cloud-aws#s3-repository

它将允许您创建映射到S3存储桶的存储库。 要使用(创建/恢复/无论)快照,您需要首先创建存储库。然后,当您对快照执行某些操作时,Elasticsearch将直接在S3存储桶上对其进行管理。