来源编辑

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

此设置仅与 age 筛选器类型一起使用,或者
space 筛选器类型一起使用,当 use_age 设置为 True 时。

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

name 基于的年龄编辑

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

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

关于使用时间字符串进行正则表达式匹配的一句话

时间字符串从 strftime 模式(如 %Y.%m.%d)解析为正则表达式。例如,%Y 是 4 位数字,因此该模式的正则表达式看起来像 \d{4},而 %m 是 2 位数字,因此正则表达式是 \d{2}

这意味着一个简单的用于匹配年份和月份的时间字符串 %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 提取索引或快照创建的纪元时间。

 - 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