ElasticSearch 数据老化清理之Curator

 

前言

随着接入ELK日志分析平台的系统增加,每日海量的日志数据使得磁盘空间越发紧张,从而ES的日志清理也成了一个常规操作。而ES官方也提供了一个很好用的工具——curator来实现这个事情。抽空也部署了一个,以供阅知。

 

 

Curator简介

据官方介绍,curator最早被称为clearESindices.py的python脚本,它的唯一功能就是删除索引清理数据,而后重命名为logstash_index_cleaner.py,在logstash下用来清理过期日志。此后不久,原作者加入Elastic,改造成为了Elasticsearch Curator官方工具,扩展了更多功能,实现对索引的灵活操作,目前最新5.8版本主要功能有:从别名添加或删除索引、更改分片路由分配、关闭索引、创建索引、删除索引、删除快照、打开被关闭的索引、对索引执行forcemerge合并、reindex索引(包括来自远程集群的索引)、更改索引的每个分片的副本数、rollover索引、生成索引的快照(备份)、还原快照。

 

与ES版本兼容对应关系图

 

部署使用

不得不说老外做的工具人性化方面还是很到位的,Curator 支持各种方式部署,windows和Linux皆可,且不必安装在ES集群所在节点,只要可以访问到ES服务即可。详细可以参考官网。我这里为了方便直接用windows的免安装版本了。

 

curator提供了两个命令接口:curator和curator_cli

curator_cli命令

一般curator_cli主要用来调试,适合查看索引状态,这个接口只支持一次运行一个action,并且通过命令行写入复杂的filter可读性不好,所以,一般是使用curator_cli来配合写curator的action.yml做简单的测试。

 

比如查看所有的index:

curator_cli --host 192.168.1.10 --port 9200show_indices --verbos

 

curator命令

 

curator [--config CONFIG.YML][--dry-run] ACTION_FILE.YML

 

--config之后跟上配置文件,主要配置ES集群的信息;--dry-run如果带上了则会模拟执行action的操作,实际不会生效,主要用来配置规则前的测试;action文件里面配置的是具体的索引操作规则,每个action由三部分组成:

-       action,具体执行什么操作

-       option, 配置哪些可选项

-       filter, 过滤条件,哪些index需要执行action

 

config配置文件里面需要注意的是,如果集群里面索引较多,建议请求超时时长设长点否则容易超时。

 

Actions也是在一个yml文件中,通过缩进定义变量。我这里只加了一个清除10天前索引数据的动作,如果定义了多个action,它们则会被顺序执行,如果有依赖关系,要保证被依赖的action写在前面。这里要注意的是option选项,在多action中并且没有互相依赖的情况下,一定要设置ignore_empty_list:True,这里代表的是,如果filter没有找到符合查询条件的index,略过。如果设置成false,且在第一个action时,没有找到匹配的index,整个curator会被abort。同样option选项里面的disable_action: True也要注意设置为False,否则该action不会执行,目的是为了多个action任务中可以暂停某些不需要的任务。

 

 

官网上还有很多action的例子,可以很方便的找到对应的参考。

 

自动执行

curator是一个命令行工具,而我们的需要是需要自动化的定期维护,因此需要在linux系统的crontab或者windows的计划任务中增加一个每天执行该命令的操作即可。

 

Windows例子

 

我这里是写到一个批处理脚本里面,然后加到windows计划任务里的方式处理的

 

Linux 例子

# For details see man 4 crontabs
 
# Example of job definition:
# .---------------- minute (0 - 59)
# |  .------------- hour (0 - 23)
# |  |  .---------- day of month (1 - 31)
# |  |  |  .------- month (1 - 12) OR jan,feb,mar,apr ...
# |  |  |  |  .---- day of week (0 - 6) (Sunday=0 or 7) OR sun,mon,tue,wed,thu,fri,sat
# |  |  |  |  |
# *  *  *  *  * user-name  command to be executed
 
0 0 * * * root curator --config /opt/curator/curator.yml /opt/curator/action.yml

 

 

 

 

参考

 

[1]. 官方简介:

https://www.elastic.co/guide/en/elasticsearch/client/curator/current/about-origin.html

[2]. 博客园:https://www.cnblogs.com/wynjauu/articles/9372659.html

 

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值