Z.S.K.'s Records

FELK学习(Elasticsearch索引管理工具Curator)

当使用elasticsearch做为日志系统的后端存储,时间一长的话日志量也是个很可观的数字, 因此需要定时清除,之前一直都是自己写脚本做管理, 后面需要维护的索引越来越多后觉得力不从心, 而curator做为es官方推出的索引管理工具, 使用起来还是很方便的

curator的github在这里

Install

curator是使用python写的工具, 可以直接使用pip安装

1
pip install elasticsearch-curator

当然 ,在也使用yum 安装

1
yum install elasticsearch-curator

配置文件

curator的配置文件非常简单, 典型的配置如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
---
client:
hosts:
- 172.16.98.6
port: 9200
url_prefix:
use_ssl: False
certificate:
client_cert:
client_key:
ssl_no_validate: False
http_auth:
timeout: 30
master_only: False

logging:
loglevel: INFO
logfile: /var/log/curator.log
logformat: default
blacklist: ['elasticsearch', 'urllib3']

注意: 配置文件中如果某个key的value值为空, 直接留空即可, 不能写None(会被当成字符串)

配置文件中指定es集群中某个节点的地址即可, 关键是需要定义action配置文件, 即执行的动作

Action文件

官网的github上列出了一些常用的action供参考, 详情请参考这里

典型的action配置文件如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
---
actions:
1:
action: delete_indices
description: >-
prefixed indices. Ignore the error if the filter does not result in an
actionable list of indices (ignore_empty_list) and exit cleanly.
options:
ignore_empty_list: True
filters:
- filtertype: pattern
kind: regex
value: '^(c|alert|d|rancher|s|web|container).*$'
- filtertype: age
source: name
direction: older
timestring: '%Y.%m.%d'
unit: days
unit_count: 60
2:
action: close
description: >-
prefixed indices. Ignore the error if the filter does not result in an
actionable list of indices (ignore_empty_list) and exit cleanly.
options:
ignore_empty_list: True
filters:
- filtertype: pattern
kind: regex
value: '^(c|alert|d|rancher|s|web|container).*$'
- filtertype: age
source: name
direction: older
timestring: '%Y.%m.%d'
unit: days
unit_count: 30

说明:

action中是以字数编码指定action的个数的

第1个action的作用为: 删除60天之前的索引, 使用正则表达式指定了索引的范围

第2个action的作用为: 关闭30天之前的索引, 使用正则表达式指定了索引的范围

当然,action还有其它的选项,可参考github.

定期执行

定义好config及action文件后,即可加入crontab定期执行.

1
0 2 * * * /usr/bin/curator --config /data/es/curator/config.yml  /data/es/curator/action.yml

参考文章:

转载请注明原作者: 周淑科(https://izsk.me)

 wechat
Scan Me To Read on Phone
I know you won't do this,but what if you did?