删除amazon elasticsearch中的旧索引

时间:2018-04-24 11:28:58

标签: amazon-web-services elasticsearch

我们正在将AWS Elasticsearch用于日志。日志通过Logstash连续流式传输。定期删除旧索引的最佳方法是什么?

我搜索过并推荐了各种方法:

  1. 使用lambda删除旧索引 - https://medium.com/@egonbraun/periodically-cleaning-elasticsearch-indexes-using-aws-lambda-f8df0ebf4d9f

  2. 使用预定的泊坞广告容器 - http://www.tothenew.com/blog/running-curator-in-docker-container-to-remove-old-elasticsearch-indexes/

  3. 对于这样的基本要求,这些方法似乎有点过分,因为"删除超过15天的索引"

    实现这一目标的最佳方法是什么? AWS是否提供我可以调整的任何设置?

3 个答案:

答案 0 :(得分:1)

Elasticsearch 6.6引入了一项称为 Index Lifecycle Manager See here的新技术。每个索引都分配有一个生命周期策略,该策略控制索引如何在特定阶段过渡直到删除它们。

例如,如果您要将一组ATM的指标数据索引到Elasticsearch中,则可以定义一个策略,说明:

  1. 当索引达到50GB时,将鼠标移至新索引。
  2. 将旧索引移到温暖的阶段,将其标记为只读,然后将其缩小为单个碎片。
  3. 7天后,将索引移至冷态,然后将其移至价格较低的硬件上。
  4. 在达到所需的30天保留期后删除索引。

该技术尚处于beta阶段,但是从现在开始可能是发展之路。

答案 1 :(得分:1)

我遵循了elasticsearch-curator文档来安装软件包:

https://www.elastic.co/guide/en/elasticsearch/client/curator/current/pip.html

然后,我使用了一个AWS基本示例,该示例说明了如何使用由request_aws4auth软件包提供的基于签名的身份验证来自动化索引清除:

https://docs.aws.amazon.com/elasticsearch-service/latest/developerguide/curator.html

它就像一种魅力。

您可以决定在lambda,docker中运行它,或将其包含在您自己的DevOps cli中。

答案 2 :(得分:0)

正在运行的策展人非常轻巧且容易。

在这里您可以找到Dockerfile,config和action-file。

https://github.com/zakkg3/curator

此外,如果需要(除了其他方面),馆长可以为您提供帮助:

  • 从别名添加或删除索引(或同时删除两个索引!)
  • 更改分片路由分配
  • 删除快照
  • 开放式封闭指数
  • forceMerge索引
  • 重新索引索引,包括来自远程集群的索引
  • 更改索引每个分片的副本数
  • 滚动指数
  • 制作索引快照(备份)
  • 还原快照

https://www.elastic.co/guide/en/elasticsearch/client/curator/current/index.html

这是删除15天以上索引的典型操作文件:

     actions:
      1:
        action: delete_indices
        description: >-
          Delete indices older than 15 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.
        options:
          ignore_empty_list: True
          disable_action: True
        filters:
        - filtertype: pattern
          kind: prefix
          value: logstash-
        - filtertype: age
          source: name
          direction: older
          timestring: '%Y.%m.%d'
          unit: days
          unit_count: 15