如何按日期时间段或按大小从elasticsearch中删除文档?

Sol*_*ore 5 elasticsearch logstash

我想通过配置数据日期期限从elasticsearch中删除数据,例如,超过30天的数据,或者可能按大小,例如如果索引大小大于100Mb,则删除旧数据。我使用logstash 将日志移动到elasticsearch 中的一个索引。我怎样才能做到这一点?

Kau*_*k J 7

如果您想根据您的条件显式删除日志,可以使用delete_by_query

POST /my_logs/_delete_by_query
{
    "query": {
        "range": {
            "date": {
                "lte": <your_target_date>
            }
        }
    }
}
Run Code Online (Sandbox Code Playgroud)


小智 2

从当前索引中删除旧数据并不是一个简单的方法。您可以配置logstash每天创建新索引。然后您可以通过索引模式或别名访问所有数据。

然后,您将能够根据日期删除较旧的索引,而不会出现太多问题。

您可以使用 curator 自动执行这些操作 - https://www.elastic.co/guide/en/elasticsearch/client/curator/5.8/index.html

请参阅这篇关于配置 Logstash 每天创建索引的文章 在 Logstash 配置中每天为 Elasticsearch 创建一个新索引