用 Curator 来管理 Elasticsearch 的索引

前言

CuratorElastic 官方发布的一个管理 Elasticsearch 索引的工具,可以完成许多索引生命周期的管理工作,例如清理创建时间超过 7 天的索引、每天定时备份指定的索引、定时将索引从热节点迁移至冷节点等等。

安装

PIP

如果没有安装 pip 先安装 pip

1
wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo

利用阿里的 epel

1
yum -y install python-pip

Curator

Curator 本身是基于 Python 实现,所以可以使用 pip 安装

1
pip install elasticsearch-curator

升级

1
pip install -U elasticsearch-curator

查看版本

1
2
# curator --version
curator, version 5.8.4

使用

配置

新建配置文件 curator.yml,具体格式可以参考官方默认的配置文件

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
---
client:
hosts:
- 127.0.0.1
port: 9200
url_prefix:
use_ssl: False
certificate:
client_cert:
client_key:
ssl_no_validate: False
username: elastic # elastic用户
password: password # elastic密码
timeout: 30
master_only: False

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

删除

新建执行动作文件 delete_indices.yml,比如我执行删除7天前的索引

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
---
actions:
1:
action: delete_indices
description: "delete the index 7 days ago"
filters:
- filtertype: pattern
kind: prefix
value: filebeat-nginx-error-
- filtertype: age
source: name
direction: older
timestring: '%Y.%m.%d'
unit: days
unit_count: 7

执行

1
curator --config /etc/curator/config.yml /etc/curator/action/delete_indices.yml

执行结果如下:


未完待续