我们正在将AWS Elasticsearch用于日志。日志通过Logstash连续流式传输。定期删除旧索引的最佳方法是什么?
我搜索过并推荐了各种方法:
使用lambda删除旧索引 - https://medium.com/@egonbraun/periodically-cleaning-elasticsearch-indexes-using-aws-lambda-f8df0ebf4d9f
使用预定的泊坞广告容器 - http://www.tothenew.com/blog/running-curator-in-docker-container-to-remove-old-elasticsearch-indexes/
对于这样的基本要求,这些方法似乎有点过分,因为"删除超过15天的索引"
实现这一目标的最佳方法是什么? AWS是否提供我可以调整的任何设置?
答案 0 :(得分:1)
Elasticsearch 6.6引入了一项称为 Index Lifecycle Manager See here的新技术。每个索引都分配有一个生命周期策略,该策略控制索引如何在特定阶段过渡直到删除它们。
例如,如果您要将一组ATM的指标数据索引到Elasticsearch中,则可以定义一个策略,说明:
该技术尚处于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
此外,如果需要(除了其他方面),馆长可以为您提供帮助:
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