elasticsearch-curator介绍和使用
curator介绍
elasticsearch-curator
可以通过以下方式帮助你策划或管理你的elasticsearch索引和快照:
- 从集群里获取全部索引或者快照作为可操作列表
- 迭代用户定义的过滤器列表,根据需要逐步从此可操作列表中删除索引或快照
- 对保留下来的列表执行各种操作
起源介绍
Curator
是有python
开发的,刚开始被称为 clearESindices.py
,它唯一的功能是删除索引(PS:本文主要介绍通过curator删除索引,若要其他功能请移步官网
),随后又立即改名为logstash_index_cleaner.py
。不就开发人员就被Elastic聘用,之后就称为了Elasticsearch Curator,现在托管在https://github.com/elastic/curator。
Curator现在对您的Elasticsearch索引执行许多操作,从删除到快照到分片分配路由。
功能
Curator允许对索引和快照执行许多不同的操作,包括:
- 从别名添加或删除索引(或两者!)
- 更改分片路由分配
- 关闭指数
- 创建索引
- 删除索引
- 删除快照
- 打开关闭的索引
- forceMerge指数
- reindex索引,包括来自远程集群的索引
- 更改索引的每个分片的副本数
- 翻滚指数
- 拍摄索引的快照(备份)
- 还原快照
安装
最简单的安装方式:
pip install elasticsearch-curator
其他安装方式请参阅官网安装部分
命令行接口
命令行参数如下:
curator [--config CONFIG.YML] [--dry-run] ACTION_FILE.YML
如果--config
和CONFIG.YML
没有提供,Curator会在当前用户的家目录~/.curator/curator.yml
下查找。
如果--dry-run提供了,curator将尽可能接近地模拟ACTION_FILE.YML
配置文件里的动作,而实际上不进行任何更改,
如果未指定日志文件,则日志将位于当前目录或为标准输出
$ curator --help
Usage: curator [OPTIONS] ACTION_FILECurator for Elasticsearch indices.
See http://elastic.co/guide/en/elasticsearch/client/curator/current
Options:
--config PATH 配置文件路径,默认为: ~/.curator/curator.yml
--dry-run 不执行任何实际的操作
--version 打印版本号
--help 显示帮助信息
单例命令行
curator_cli
命令允许用户运行一个单个受支持的操作,无需客户端或这个aciton配置文件,但如果需要,也是支持使用客户端配置文件的,有个好处,就是curator_cli
允许你通过指定一些参数来覆盖配置文件curator.yml
里的配置:
$ curator_cli --help
Usage: curator_cli [OPTIONS] COMMAND [ARGS]...Options:
--config PATH 配置文件. 默认为:~/.curator/curator.yml
--host TEXT es的ip
--url_prefix TEXT es的http url prefix
--port TEXT Elasticsearch 端口号
--use_ssl 通过ssl连接es
--certificate TEXT Path to certificate to use for SSL validation.
--client-cert TEXT Path to file containing SSL certificate for client auth.
--client-key TEXT Path to file containing SSL key for client auth.
--ssl-no-validate Do not validate SSL certificate
--http_auth TEXT Use Basic Authentication ex: user:pass
--timeout INTEGER Connection timeout in seconds.
--master-only Only operate on elected master node.
--dry-run Do not perform any changes.
--loglevel TEXT Log level
--logfile TEXT log file
--logformat TEXT Log output format [default|logstash|json].
--version Show the version and exit.
--help Show this message and exit.Commands:
allocation 分片路由分片
close 关闭索引
delete_indices 删除索引
delete_snapshots 删除快照
forcemerge forceMerge 索引/分片 的segments
open 打开关闭的索引
replicas 改变索引的分片数
show_indices 显示索引
show_snapshots 显示快照
snapshot 为索引创建快照
curator_cli commands --help 查看对用命令的帮助信息
命令行过滤
--filter_list TEXT JSON string representing an array of filters.
--filter_list '[{"filtertype":"age","source":"creation_date","direction":"older","unit":"days","unit_count":13},{"filtertype":"pattern","kind":"prefix","value":"logstash"}]'
例如:
curator_cli --host 10.180.x.x--port 9200 show_indices --filter_list '{"filtertype":"pattern","value":"hehe"}'
配置文件
主要为action和configure配置文件
Action File
action配置文件的结构如下:
actions:
1:
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:
action: ACTION2
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
3:
action: ACTION3
...
4:
action: ACTION4
...
这是个YMAL格式的配置文件,根必须为actions
,之后可以有任意数量的action
,Actions
将按照编号顺序完成各个action
。
下面为每个编号下的高级元素:
- action
- description
- options
- filters
解释: - action就是功能里所展示的内容,具体配置参数为
curator_cli
帮助命令所打印出的commands内容。 - description这是一个可选的描述,可以帮助描述动作及其过滤器应该做什么。
- options 可选项为:
- continue_if_exception 在发生异常时是否继续 True/False默认为False,在大多数情况下,需要使用ignore_empty_list而不是continue_if_exception
- disable_action 是否忽略当前action True/False
- extra_settings 额外的配置和条件
- ignore_empty_list 值:True/False 根据索引以及如何过滤它们,可以向action显示一个空列表。这导致错误情况
- timeout_override
过滤器
过滤器是仅选择所需索引(或快照)的方法
- age
- filtertype: age
source: creation_date (creation_date/name/field_stats)
direction: older (older/younger)
unit: days (seconds/minutes/hours/days/weeks/months/years
)
unit_count: 3
- filtertype: age
source: name
direction: older
timestring: '%Y.%m.%d'
unit: days
unit_count: 3
creation_date:索引创建的日期
name:使用name
作为source
告知Curator
在索引或快照名称中查找timestring
,并将其转换为纪元时间戳(纪元UTC)。
- pattern
filters:
- filtertype: pattern
kind: regex (regex/prefix/suffix/timestring)
value: '^(alpha-|bravo-|charlie-).*$'
- period
待续
Configure File
client:
hosts:
- 127.0.0.1
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:
logformat: default
blacklist: ['elasticsearch', 'urllib3']
基本同curator_cli
命令的参数,不再赘述。
实例
action.yml
actions:
1:
action: delete_indices
description: >-
Delete indices older than 45 days (based on index name), for logstash-
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
disable_action: True
filters:
- filtertype: pattern
kind: prefix
value: logstash-
- filtertype: age
source: name
direction: older
timestring: '%Y.%m.%d'
unit: days
unit_count: 45
启动:
curator [--config CONFIG.YML] [--dry-run] action.yml
以上
网友评论