Curator 是 Elastic 官方发布的一个管理 Elasticsearch 索引的工具,可以完成许多索引生命周期的管理工作,例如清理创建时间超过7天的索引、每天定时备份指定的索引、定时将索引从热节点迁移至冷节点等等。那么今天我们就来讲讲Curator的入门、操作、使用.
首先, 我们访问一下Curator官网: https://www.elastic.co/guide/en/elasticsearch/client/curator/current/index.html
通过官网我们可以知道,Curator目前最新版本是5.8 ,它具有以下这些功能:
那么curator的功能总结如下:(对索引的管理维护!)
其次:我们来看一下 ES---Curator 版本间的对应关系
因为我们的ES最新版已经到了7.6了,所以,我们的curator版本也不能太低了,所以一般都是选择5.6或者5.8 ,那么本文将以ES 6.8.2 、Curator5.8来讲解他们之间的应用。
安装条件:CVM云主机 腾讯ES集群(也可以自己搭建虚拟环境) CVM与ES同在一个VPC
第一步:在CVM上,通过 pip 安装 curator 包 使用命令:pip install elasticsearch-curator (注意:如果提示pip命令无法找到,则需要先安装PIP工具包,可以参考链接:https://www.jianshu.com/p/ee5b116914bb)
在安装的最后,发现报错“ERROR: Cannot uninstall 'requests'. It is a distutils installed project and thus we cannot accurat”
解决办法:执行这条命令添加参数: sudo pip install elasticsearch-curator --ignore-installed requests
查看一下curator 版本 使用命令:curator --version
那么到此,curator安装完毕。接下来怎么使用?它有三种使用方式:
1,命令行 CLI 工具 使用curator_cli 开头后面接参数,我们可以通过--help查看,如下:
它的好处: 无需配置文件,一行命令即可成功;坏处:不能便捷的适应复杂的操作
2,以配置文件的方式运行
它的格式如下:curator --config /path/config.yml /path/action.yml (注意配置文件一定要写绝对路径)
config.yml 是配置文件,用于配置ES集群信息。action.yml 用来执行索引操作的配置信息。
这几个配置文件在系统安装完毕后,默认是没有配置文件的。我们需要去官网COPY。那我们去官网看看:地址如下https://www.elastic.co/guide/en/elasticsearch/client/curator/5.8/configfile.html
CONFIG.YML 官方配置文件如下:
---
# Remember, leave a key empty if there is no value. None will be a string,
# not a Python "NoneType"
client:
hosts:
- 127.0.0.1 ----》ES集群的IP,多个IP间用","隔开
port: 9200 ------》ES端口
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: -------》这里要改成你自己的日志文件的目录
logformat: default
blacklist: ['elasticsearch', 'urllib3']---》保持默认
它的核心配置: 1)集群IP; 2)安全认证信息; 3)日志信息。
那看看我得这个怎么配置的?
再来看看Action.yml官方配置文件地址为: https://www.elastic.co/guide/en/elasticsearch/client/curator/5.8/actionfile.html
由于内容较多,建议大家看官网,这里列出部分,如下:
---
# Remember, leave a key empty if there is no value. None will be a string,
# not a Python "NoneType"
#
# Also remember that all examples have 'disable_action' set to True. If you
# want to use this action as a template, be sure to set this to False after
# copying it.
actions:
1:--------------》要采取的动作1 ###action.yml 用来执行索引操作的配置信息。
action: ACTION1
description: OPTIONAL DESCRIPTION
options:
option1: value1
...
optionN: valueN
continue_if_exception: False
disable_action: True
filters:
- filtertype: *first*
filter_element1: value1
...
filter_elementN: valueN
- filtertype: *second*
filter_element1: value1
...
filter_elementN: valueN
2:-----------------------------要采取的动作2,依次类推,都再这里定义
action: ACTION2
description: OPTIONAL DESCRIPTION
那看看我得action.yml是怎么配置的?
这只是一个条件,当然后面还可以以此类推。进行复合命令的操作。
3,通过Python API来操作curator,后面我们将以腾讯云SCF结合,讲它的实用。
比如,我需要:过滤索引名称匹配 logstash-20xx-xx-xx 格式且时间为7天前的索引,然后将这些索引删除,操作如下:
1,命令行模式 使用如下:
curator_cli --host 10.0.0.2:9200 --http_auth ‘user:passwd' delete_indices --filter_list '[{"filtertype": "pattern", "kind": "prefix", "value": "logstash-"}, {"filtertype": "age", "source": "name", "direction": "older", "timestring": "%Y.%m.%d", "unit": "days", unit_count: 7}]'
curator_cli --host 10.0.1.7:9200 --http_auth 'user:password' show_indices --verbose
2,配置文件 的方式上面本人的配置文件已经贴出来了。那么怎么执行呢?如下:
验证一下有没有执行成功?我们去看输出日志。日志目录我们在config.yml文件里配置了。发现删除了日志。
我们看一下ES集群上的索引信息是否准确?确实删除了
那我们再来改一下规则,让它删除以logstats-ngi*开头的索引信息。我们改一下配置文件。
如果我们需要在某一个时刻去定时操作清理ES上的数据,那么我们可以使用LINUX 自带的crontab功能
比如说我要每隔1分去执行命令,清理Logstash开头的索引 我们可以这样写
我们使用contab -e 打开直接添加如下命令 也可以写脚本,然后把脚本添加进crontab 去执行
查看日志,看计划执行没
写个脚本看看能否执行
将此脚本授权并放到任务计划 每1分钟执行一次。使用crontab -e 打开命令行,添加后,然后保存退出。
那么至此,Elastic Curator工具的使用就已经完成。curator+crontab的方式是实际生产中应用的最多的方式。接下来,我们还要再讲一种方式,那就是基于Tencent SCF 下调用基于curator工具的Python API去管理维护ES集群的索引:
腾讯云无服务器云函数(SCF)中,已经配置了含有Curator的模板,用户可以直接应用模板,快速开始一个curator函数的配置:便于我们快速的通过API去处理ES集群的索引信息。下面简单介绍一下:
进入到腾讯云无服务器函数(scf)的控制台,点击新建。
选择“Curator” 如下图
高级配置里,选择私有网络配置。注意:要跟ES集群在同一内网。
根据您购买的ES集群信息编辑模板的相关参数
最后定义触发告警,每天运行依次。定时清理不要的索引信息(根据实际情况)
在触发方式中,配置触发周期,可以配置每天触发或选择自定义触发,点击保存。
关于此节请参考官方文档:https://cloud.tencent.com/developer/article/1361207
本节讲了从两个方面去讲了curator的使用。尤其是后面还介绍了一款腾讯云 自动化的Curator API工具。便于我们快速去维护管理在腾讯ES集群上的索引。总之,此工具非常好用,也非常强大,建议大家多操作。重点注意其原理、配置文件含义。最后还是要以下的curator使用限制:
切记: curator适用于 基于时间或者tempalte其它方式创建的索引。, 不适合单一索引存储N久历史数据的操作的场景。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。