CuratorでElasticsearchの古いindexを削除する

(2017-03-22)

Curatorとは

indexやsnapshotを管理するのに使えるツール。

インストール

インストールする。

$ cat /etc/yum.repos.d/curator.repo
[curator-4]
name=CentOS/RHEL 7 repository for Elasticsearch Curator 4.x packages
baseurl=http://packages.elastic.co/curator/4/centos/7
gpgcheck=1
gpgkey=http://packages.elastic.co/GPG-KEY-elasticsearch
enabled=1

$ yum install -y elasticsearch-curator
$ curator --version
curator, version 4.2.6

config

configファイルを書く。

client:
  hosts:
    - 127.0.0.1
  port: 9200

logging:
  loglevel: INFO
  logfile:
  logformat: default
  blacklist: ['elasticsearch', 'urllib3']

action

今回はindexを削除するのでdelete_indices。 対象はfilterで指定する。 logstash formatだとhogehoge-2017.01.01のようなindex名になるので%Y.%m.%dokder than 3 daysのものを削除する。

actions:
  1:
    action: delete_indices
    description: >-
      3日前より古いhogehoge-* indexを消す
    filters:
    - filtertype: pattern
      kind: prefix
      value: hogehoge-
    - filtertype: age
      source: name
      direction: older
      timestring: '%Y.%m.%d'
      unit: days
      unit_count: 3

実行

configとactionファイルを指定して実行する。

$ curator --config curator_config.yml curator_action.yml

毎日00:05に実行するようにしてみる。

$ crontab -l
5 0 * * * curator --config curator_config.yml curator_action.yml