来源

编辑

用于推导出索引或快照年龄的来源。可以是 namecreation_datefield_stats 之一。

此设置仅与 age 过滤器类型一起使用,或
space 过滤器类型一起使用,前提是 use_age 设置为 True

当使用 age 过滤器类型时,source 需要
directionunitunit_count
以及可选设置 epoch

name 基于年龄

编辑

使用 name 作为 source 会告诉 Curator 在索引或快照名称中查找 timestring,并将其转换为 epoch 时间戳(epoch 表示 UTC)。

 - filtertype: age
   source: name
   direction: older
   timestring: '%Y.%m.%d'
   unit: days
   unit_count: 3

关于使用 timestring 进行正则表达式匹配的一句话

Timestring 从 strftime 模式(如 %Y.%m.%d)解析为正则表达式。例如,%Y 是 4 位数字,因此该模式的正则表达式类似于 \d{4},而 %m 是 2 位数字,因此正则表达式为 \d{2}

这意味着匹配年份和月份的简单 timestring %Y.%m 将生成如下正则表达式:^.*\d{4}\.\d{2}.*$。此模式将匹配任何 4 位数字,后跟一个句点 .,后跟 2 位数字,出现在索引名称的任何位置。这意味着它匹配每月索引,例如 index-2016.12,以及每日索引,例如 index-2017.04.01,这可能不是预期的行为。

为了弥补这一点,在选择与另一个模式的子集匹配的索引时,请使用第二个过滤器,并将 exclude 设置为 True

- filtertype: pattern
 kind: timestring
 value: '%Y.%m'
- filtertype: pattern
 kind: timestring
 value: '%Y.%m.%d'
 exclude: True

这将防止 %Y.%m 模式匹配每日索引中的 %Y.%m 部分。

这适用于将 timestring 作为单纯的模式匹配还是作为日期计算的一部分。

creation_date 基于年龄

编辑

creation_date 提取索引或快照创建的 epoch 时间。

 - filtertype: age
   source: creation_date
   direction: older
   unit: days
   unit_count: 3

field_stats 基于年龄

编辑

仅当过滤索引时,source 才能为 field_stats

在 Curator 5.3 及更早版本中,source field_stats 使用 字段统计 API 计算 fieldmin_valuemax_value 作为 stats_result,然后使用该值进行年龄比较。在 5.4 及更高版本中,即使它仍然称为 field_stats,它也使用聚合来计算相同的值,因为 field_stats API 在 Elasticsearch 6.x 及更高版本中不再使用。

field 必须在 Elasticsearch 中为 date 类型。

 - filtertype: age
   source: field_stats
   direction: older
   unit: days
   unit_count: 3
   field: '@timestamp'
   stats_result: min_value