Elasticsearch Curator 命令行工具完全指南
概述
Elasticsearch Curator 是一个强大的索引管理工具,它提供了两种主要的命令行使用方式:标准命令行接口和单例命令行接口。本文将深入解析这两种使用方式,帮助您高效管理 Elasticsearch 集群。
标准命令行接口
基本用法
标准命令行接口是 Curator 最常用的方式,它允许您通过配置文件执行批量操作:
curator [--config CONFIG.YML] [--dry-run] ACTION_FILE.YML
--config
:指定配置文件路径(可选,默认为~/.curator/curator.yml
)--dry-run
:模拟执行操作而不实际修改数据ACTION_FILE.YML
:定义要执行的操作文件
重要特性
- 配置优先级:命令行参数会覆盖配置文件中相同的设置
- 环境变量:支持在配置文件中使用环境变量
- 日志控制:可通过
--loglevel
和--logfile
参数控制日志输出
常用参数解析
| 参数 | 说明 |
|------|------|
| --hosts
| 指定 Elasticsearch 连接地址 |
| --username
/--password
| 认证凭据 |
| --request_timeout
| 请求超时时间(秒) |
| --verify_certs
| 是否验证 SSL 证书 |
| --dry-run
| 模拟运行模式 |
Docker 环境运行
在 Docker 中使用 Curator 需要特别注意文件映射:
docker run [-t] --rm --name myimagename \
-v /PATH/TO/MY/CONFIGS:/.curator \
untergeek/curator:mytag \
--config /.curator/config.yml /.curator/actionfile.yml
关键说明:
-v
参数将本地配置文件目录映射到容器内--rm
确保容器执行后自动清理-t
参数在测试时可用于显示终端输出
单例命令行接口 (curator_cli)
核心优势
curator_cli
提供了无需配置文件的单命令操作能力,特别适合:
- 快速执行单一操作
- 测试过滤器效果
- 自动化脚本集成
基本结构
curator_cli [OPTIONS] COMMAND [ARGS]...
支持的命令包括:
alias
:管理索引别名allocation
:分片分配控制close
/open
:关闭/打开索引delete-indices
:删除索引forcemerge
:强制合并段show-indices
/show-snapshots
:查看索引/快照
过滤器使用技巧
单例模式使用 JSON 格式的 --filter_list
参数定义过滤器:
--filter_list '[{
"filtertype":"age",
"source":"creation_date",
"direction":"older",
"unit":"days",
"unit_count":13
}, {
"filtertype":"pattern",
"kind":"prefix",
"value":"logstash"
}]'
查看功能详解
show-indices 命令
提供丰富的索引查看选项:
$ curator_cli show-indices --verbose --header --epoch
输出示例:
Index State Size Docs Pri Rep creation_date
logstash-2023.01.01 open 1.2GB 100000 3 1 1672531200
参数说明:
--verbose
:显示详细信息--header
:添加表头--epoch
:使用时间戳格式
show-snapshots 命令
查看快照信息:
$ curator_cli show-snapshots --repository my_repo
退出代码说明
0
:操作成功1
:操作失败-1
:发生异常
最佳实践建议
- 测试先行:始终先使用
--dry-run
测试操作 - 日志记录:生产环境务必指定
--logfile
- 安全考虑:使用最小权限的认证凭据
- 版本兼容:确保 Curator 版本与 Elasticsearch 版本兼容
通过掌握这些命令行技巧,您可以更高效地管理 Elasticsearch 集群,实现自动化的索引生命周期管理。
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考