删除旧索引elasticsearch?

Delete old indices elasticsearch?

我正在使用 ELK 堆栈来分析日志。因此,根据默认配置,ES 创建了 "logsatash-YYYY-MM-DD" 的新索引。 因此,如果我将 logstash 配置为如下所示:

/var/log/rsyslog/**/2014-12-0[1-7]/auditd.log

因此它正在读取旧日志并且创建的索引名称将是 "logstash-2015-03-20",因此该索引将包含以前日期的文档(日志)。

当我必须删除索引时,我的问题出现了。如果我只需要保留最后一周的数据并清除旧的索引。当我删除除最近 7 天以外的索引名称时,我不知道日志保存在哪个索引名称中的日期。例如:2014-12-07 日期的日志可能保存在任何名为 logstash-2015-03-19logstash-2015-03-20.

的索引中

那么我应该如何删除索引呢?

日志消息根据@timestamp 字段(使用UTC 时间)的值存储到索引中。如果您的 2014-12-07 日志在 2015-03-19 结束,则此时间戳解析未正确完成。

通过添加 grok and/or date 过滤器更正问题,您的 2014-12-07 日志将最终出现在 logstash-2014.12.07 索引中,清理旧日志将变得微不足道。