【问题标题】:Delete old indices elasticsearch?删除旧索引弹性搜索?
【发布时间】:2015-05-23 11:12:36
【问题描述】:

我正在使用 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 的索引中。

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

【问题讨论】:

  • 您可以删除最近一次“更新”> 7 天的日志文件。
  • Nit:Logstash 索引的默认索引模式是 logstash-YYYY.MM.DD,而不是 logsatash-YYYY-MM-DD。

标签: elasticsearch logstash kibana


【解决方案1】:

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

通过添加 grok 和/或 date 过滤器来纠正问题,您的 2014-12-07 日志将最终出现在 logstash-2014.12.07 索引中,清理旧日志将很容易。

【讨论】:

  • 我目前没有使用日期过滤器。就像索引名称是由 ELK 设置的日期创建的,而不是由 logdate 创建的。例如:我今天开始设置ELK来读取2014年的日志,索引名称将是logstash-TODAY'S DATE。那么日期过滤器会解决这个问题吗?
  • 是的。该过滤器的全部目的是设置@timestamp 字段,该字段控制日志消息在哪个索引中结束。
  • 我为编辑创建了一个新问题:stackoverflow.com/questions/29384754/…
猜你喜欢
  • 2016-01-30
  • 2018-10-04
  • 2016-03-14
  • 2016-11-30
  • 2021-03-06
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-10-24
相关资源
最近更新 更多