由于大量日志数据进入我的小型服务器,我想每天使用crontab删除Elasticsearch日志数据。我在互联网上做了很多研究,并使用策展人或Elasticsearch _ttl找到了解决方案。但没有什么对我有用。现在我不知道如何谷歌或谷歌。因为我尝试了许多我在Google上找到的东西,但没有任何作用。所以请帮我一个明确的指示。
答案 0 :(得分:4)
Elasticsearch Curator只能删除索引,而不能删除存储在索引中的单个文档。
如果您尝试删除索引,并且您的索引名称符合预期标准,那么策展人将完成这项工作。
策展人希望索引有前缀和时间字符串。例如,--prefix logstash- --timestring %Y.%m.%d
将匹配名为logstash-2014.07.30
Curator命令删除符合这些条件的索引:
es-host
days
time-unit
的索引prod-
%Y.%m.%d
)可能如下所示: curator --host es-host delete indices --older-than 1 --time-unit days --prefix prod- --timestring %Y.%m.%d
TTL用于让Elasticsearch在生成给定时间后删除文档。这对于记录用例是有问题的,原因与像delete from TABLE where datestamp < 2014.06.01
这样的一百万个SQL语句比删除分区表一样昂贵,例如: drop table DATA-2014.05
。涉及很多磁盘I / O,它可能会损害性能。如果您不是每秒连续索引数百(或更多)文档,那么TTL可能仍然适合您。详细了解here。