带有Curator 4.2.6的AWS Elasticsearch 5.1 - 删除索引不起作用?

时间:2017-02-15 00:56:07

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

我们已从AWS Elasticsearch 2.3迁移到5.1,并发现我们的旧版馆长3命令不再用于删除超过30天的索引。我们的旧命令看起来如下:

00 00 * * 1 /bin/curator --host elasticsearch.production.domain.aws --port 80 delete indices --older-than 30 --time-unit days --timestring %Y.%m.%d --exclude .kibana

转到策展人4.2.6需要支持ES 5.1,但是,当使用提供的from the elasticsearch page示例时,我们发现收到了错误:

2017-02-15 11:46:18,874 INFO      Preparing Action ID: 1, "delete_indices"
2017-02-15 11:46:18,884 INFO      Trying Action ID: 1, "delete_indices": Delete indices older than 45 days (based on index name), for logstash- prefixed indices. Ignore the error if the filter does not result in an actionable list of indices (ignore_empty_list) and exit cleanly.
2017-02-15 11:46:18,897 ERROR     Failed to complete action: delete_indices.  <class 'KeyError'>: 'settings'

迁移后,其他任何人都成功使用该配置?

我已经单独定义了curator.yaml配置,我认为这是正确的:

client:
  hosts:
    - elasticsearch.production.domain.aws
  port: 80
  url_prefix:
  use_ssl: False
  certificate:
  client_cert:
  client_key:
  ssl_no_validate: False
  http_auth:
  timeout: 30
  master_only: False

1 个答案:

答案 0 :(得分:1)

TL; DR: AWS ES仍然不支持必要的API调用(好吧,但它们不会返回必要的数据),以便策展人使用它。

虽然AWS ES似乎已经添加了必要的/_cluster/state端点(这就是Curator 4不支持AWS ES 2.3的原因),但它们似乎已经省略了该端点的一些必要数据(这就是您获得<class 'KeyError'>: 'settings'的部分。缺少JSON响应中的settings子对象,因此Curator无法完成其任务。

策展人已经有一个未解决的问题:https://github.com/elastic/curator/issues/880,虽然我不认为策展人可以做些什么来克服这个问题。