在Elasticsearch中删除超过10天的数据

时间:2019-09-17 13:06:59

标签: ubuntu elasticsearch search kibana elk

我是Elasticsearch的新手,我想删除我的Elasticsearch索引中超过10天的文档。我只想保留最近10天的数据,所以有什么方法可以自动删除最近11天的索引。 我尝试过的..

DELETE logstash-*/_query
{
 "query": {
   "range": {
     "@timestamp": {
       "lte": "now-10d"
      }
    }
  }
}

在kibana开发工具上运行时出现错误

{
"error": "Incorrect HTTP method for uri [/logstash-*/_query?pretty] and method [DELETE], 
allowed: [POST]",
"status": 405
}

请帮助解决此问题。

2 个答案:

答案 0 :(得分:3)

您需要像这样利用Delete by Query Endpoint

use POST           use this endpoint
 |                      |
 V                      V
POST logstash-*/_delete_by_query
{
 "query": {
   "range": {
     "@timestamp": {
       "lte": "now-10d"
      }
    }
  }
}
  ^
  |
the query part is fine !!

答案 1 :(得分:0)

我正在描述不同的方法,然后@Val提出了建议。您可以创建10个索引(每天的索引),然后每天删除其中一个索引-最旧的索引。

  • 优点:删除或存档旧数据非常容易
  • 缺点:您需要 如果您需要搜索全天数据,请重写查询。