根据创建的时间删除elasticsearch旧索引

时间:2019-02-21 11:46:52

标签: elasticsearch

我对按date_formant(创建日期)删除索引有疑问。我正在使用Elasticsearch 6.4

例如,我的索引结构如下:

logstash-2019.03.21
logstash-2019.03.20
logstash-2019.03.15
logstash-2019.03.10
logstash-2019.03.12

我想删除3天前的索引(不是文档)。有帮助吗?

注意:例如,我也使用了不同的方法。

  1. 使用日期数学:查询{index:'%3Clogstash-%7Bnow-3d%7D%3E'}。这样,它仅适用于单个索引。

2。

let query = {
  index: 'logstash*',
  headers: null,
  body: {
    query: {
      range: {
        '@timestamp': {
          lt: 'now-2d'
        },
      },
    },
  },
};

这将删除文档而不是索引。

  1. 我不(不想)使用Elasticsearch-curator。

1 个答案:

答案 0 :(得分:0)

您为什么不去参加策展人?可以很好地照顾我的集群。

如果您真的不喜欢Curator,则shell脚本可能会有所帮助。

#!/bin/bash

curl -XDELETE <YOUR_ELASTICSEARCH_URL>/logstash-$(date -d '-1 day' '+%Y.%m.%d')
curl -XDELETE <YOUR_ELASTICSEARCH_URL>/logstash-$(date -d '-2 day' '+%Y.%m.%d')
curl -XDELETE <YOUR_ELASTICSEARCH_URL>/logstash-$(date -d '-3 day' '+%Y.%m.%d')