Elasticsearch Curator实战:使用delete_indices.yml清理过期索引

Elasticsearch Curator实战:使用delete_indices.yml清理过期索引

什么是Elasticsearch Curator

Elasticsearch Curator是一个强大的索引管理工具,专门用于帮助管理员自动化处理Elasticsearch中的索引生命周期。它通过简单的YAML配置文件定义各种索引操作,如创建、移除、优化、备份等,特别适合处理日志类索引的日常维护工作。

delete_indices.yml文件解析

delete_indices.yml是Curator的一个典型动作配置文件,用于定义移除过期索引的操作规则。下面我们详细解析这个配置文件的各个部分。

基本结构

配置文件采用YAML格式,主要包含以下几个关键部分:

  1. actions:定义要执行的操作列表
  2. action:指定操作类型为"delete_indices"(移除索引)
  3. description:操作描述
  4. options:操作选项配置
  5. filters:定义过滤条件,确定哪些索引会被操作

配置详解

动作定义
actions:
  1:
    action: delete_indices
    description: >-
      移除名称前缀为"logstash-"且创建时间超过45天的索引。如果过滤条件没有匹配到任何索引,忽略错误并正常退出。
  • action: delete_indices:明确指定这是一个移除索引的操作
  • description:描述了此操作的目的——移除名称前缀为"logstash-"且创建时间超过45天的索引
选项配置
options:
  ignore_empty_list: True
  timeout_override:
  continue_if_exception: False
  disable_action: True
  • ignore_empty_list: True:当过滤条件没有匹配到任何索引时,不报错而是正常退出
  • continue_if_exception: False:如果在处理过程中遇到异常,立即停止执行
  • disable_action: True:这是一个安全开关,实际使用时需要改为False才会真正执行
  • timeout_override:可以覆盖默认的超时设置
过滤器配置
filters:
- filtertype: pattern
  kind: prefix
  value: logstash-
  exclude:
- filtertype: age
  source: name
  direction: older
  timestring: '%Y.%m.%d'
  unit: days
  unit_count: 45
  exclude:

过滤器采用链式设计,依次应用多个过滤条件:

  1. 模式过滤器

    • filtertype: pattern:基于索引名称模式匹配
    • kind: prefix:匹配前缀
    • value: logstash-:只处理以"logstash-"开头的索引
    • exclude:可以指定要排除的特定模式
  2. 时间过滤器

    • filtertype: age:基于时间的过滤
    • source: name:从索引名称中提取时间信息(常见于日志类索引如logstash-2023.01.01)
    • direction: older:筛选比指定时间更早的索引
    • timestring: '%Y.%m.%d':定义如何从索引名解析日期(如2023.01.01)
    • unit: days:时间单位为天
    • unit_count: 45:移除超过45天的索引

实际应用建议

  1. 测试验证

    • 首次使用时,保持disable_action: True,使用curator --dry-run进行试运行
    • 确认输出结果符合预期后再实际执行
  2. 时间格式调整

    • 如果索引名称中的日期格式不同,需要相应调整timestring
    • 例如,对于"logs-2023-01-01"格式,应使用'%Y-%m-%d'
  3. 多条件组合

    • 可以添加更多过滤器实现复杂条件
    • 例如增加space过滤器基于磁盘空间使用情况移除索引
  4. 定时执行

    • 建议通过cron或类似工具定期执行Curator
    • 日志类索引通常每天执行一次清理

安全注意事项

  1. 操作前务必备份重要数据
  2. 生产环境先在小规模测试集群验证配置
  3. 考虑设置continue_if_exception: True防止单个索引移除失败影响后续操作
  4. 对于关键索引,可以在exclude中添加保护规则

通过合理配置delete_indices.yml,管理员可以轻松实现Elasticsearch索引的自动化生命周期管理,有效控制集群规模,优化存储使用。

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值