来源
编辑来源
编辑用于推导出索引或快照年龄的来源。可以是 name
、creation_date
或 field_stats
之一。
当使用 age 过滤器类型时,source 需要
direction、unit、unit_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 计算 field
的 min_value
或 max_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