php - 使用 crontab 自动删除 Elasticsearch 中超过 1 天的日志数据

标签 php elasticsearch cron delete-file

由于大量日志数据进入我的小型服务器,我想每天使用 crontab 删除 Elasticsearch 日志数据。我在互联网上做了很多研究,并找到了使用 curator 或 Elasticsearch _ttl 的解决方案。但对我来说没有任何作用。现在我不知道如何谷歌或谷歌什么。因为我已经尝试了很多在谷歌上找到的东西,但没有任何效果。所以请帮我一个明确的指示。

最佳答案

Elasticsearch Curator只能删除索引,不能删除索引中存储的单个文档。

如果您尝试删除索引,并且您的索引名称符合预期标准,那么 Curator 将完成这项工作。

Curator 希望索引具有前缀和时间字符串。例如--prefix logstash- --timestring %Y.%m.%d将匹配名为 logstash-2014.07.30 的索引

用于删除符合这些条件的索引的 Curator 命令:

  • 连接到elasticsearch主机es-host
  • 时间单位 days
  • 索引早于 1 time-unit
  • 前缀 prod-
  • 时间字符串year.month.day ( %Y.%m.%d ) 可能如下所示:

curator --host es-host delete indices --older-than 1 --time-unit days --prefix prod- --timestring %Y.%m.%d

TTL 用于让 Elasticsearch 在文档存在给定时间后删除它们。这对于记录用例来说是有问题的,原因与一百万个 SQL 语句(如 delete from TABLE where datestamp < 2014.06.01)相同。比删除分区表的成本更高,例如drop table DATA-2014.05 。涉及大量磁盘 I/O,这会损害性能。如果您不是每秒连续索引数百(或更多)文档,那么 TTL 可能仍然适合您。查看更多相关信息 here .

关于php - 使用 crontab 自动删除 Elasticsearch 中超过 1 天的日志数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23780649/

相关文章:

php - 从字符串末尾删除 <p> </p>?

php - php-excel-reader是否支持xlsx

php - 在另一个 Mysql 命令中使用一个 Mysql 命令的结果?

elasticsearch - 弹性搜寻完全比对词组没有多余字元

node.js - 如何以编程方式安排 AWS lambda 函数在事件发生后运行 X 时间?

java - Quartz : Based on configured schedule, 给定的触发器永远不会触发

php - 如何表示文件上传的时基进度条

amazon-web-services - elasticsearch只显示1个使用logstash进行数据迁移的docs.count

elasticsearch - 需要在文档内部数组对象上聚合-ElasticSearch

cron - 如何从 linux 框(cron 作业)定期调用 URL?