如何在ES中自动定期删除索引?

时间:2016-07-04 08:43:13

标签: elasticsearch elasticsearch-curator

我正在使用ES 2.3.3和Logstash 2.3.3。我一直在使用Logstash发送数据并将它们映射到ES进行索引,即logstash- {Date}。我只想保留最近1年的文件。应删除一年内的任何索引。我之前使用的是3.5.1。我删除索引的方法是每天输入一个命令。

curator --host 10.0.0.2 delete indices --older-than 30 --time-unit days \
   --timestring '%Y.%m.%d' 

最近,我将策展人3.5.1升级为策展人4.然而,即使我已经阅读https://www.elastic.co/guide/en/elasticsearch/client/curator/current/command-line.html中的示例,我也找不到存储策展人的位置。因此,我想知道会在哪里配置文件是为什么会丢失action_file?这是否意味着我需要创建一个新的.curator目录以及我自己的curator.yml和action.yml文件?

在我创建了action.yml文件之后,我应该只关注https://www.elastic.co/guide/en/elasticsearch/client/curator/current/examples.html#ex_delete_indices并将此部分添加到我的action.yml文件中,以便删除一年内的logstash索引吗?

由于

2 个答案:

答案 0 :(得分:6)

配置文件可以是任何位置,只要您使用--config标志启动Curator:

curator --config /path/to/curator_config.yml

但是,如果你在将要运行Curator的用户的主目录中创建一个.curator路径(通过cron,表面上是),它会在那里找到一个名为curator.yml的文件,例如/home/username/.curator/curator.yml

在该位置正确配置该文件后,Curator将不需要--config标记。

策展人只使用最后一个参数作为动作文件:

» curator --help
Usage: curator [OPTIONS] ACTION_FILE

  Curator for Elasticsearch indices.

  See http://elastic.co/guide/en/elasticsearch/client/curator/current

Options:
  --config PATH  Path to configuration file. Default: ~/.curator/curator.yml
  --dry-run      Do not perform any changes.
  --version      Show the version and exit.
  --help         Show this message and exit.

使用$HOME/.curator/curator.yml中的默认配置文件运行Curator的示例如下:

curator /path/to/actionfile.yml

使用自定义配置文件:

curator --config /path/to/curator_config.yml /path/to/actionfile.yml

在动作文件之后,示例是一个很好的起点。您可以随意尝试新配置,但请务必在执行此操作时使用--dry-run标记,以防止在测试时采取任何操作。

答案 1 :(得分:1)

策展人还附带了curator_cli,你可以在命令之下快速运行。

curator_cli --host https://full-url:port delete_indices --ignore_empty_list --filter_list '[{"filtertype":"pattern","kind":"prefix","value":"logstash-"}]'