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