unit_count_pattern
注意
此设置仅与 age filtertype 一起使用,用于定义 unit_count 值是取自配置还是通过正则表达式从索引名称中读取。
- filtertype: age
source: creation_date
direction: older
unit: days
unit_count: 3
unit_count_pattern: -([0-9]+)-
此设置可用于索引年龄评估值不是静态值而是每个索引可能不同的情况。在这种情况下,可以选择通过此参数中定义的正则表达式从索引名称中提取特定于索引的值。
例如,考虑以下索引名称模式,它们的名称中包含保留时间:logstash-30-yyyy.mm.dd、logstash-12-yyyy.mm、_3_logstash-yyyy.mm.dd。
为了从索引名称中提取值,此设置将被编译为正则表达式并与索引名称匹配,如果匹配成功,则将正则表达式中第一个捕获组的值用作 unit_count 的值。
如果在编译或匹配表达式期间出现任何错误,或者表达式不包含捕获组,则将使用在 unit_count 中配置的值作为回退值,除非它设置为 -1,在这种情况下,该索引将被跳过。
提示
此处未解释正则表达式和匹配组,因为它们是一个相当广泛而复杂的主题,但网上有许多资源可以提供帮助。使用像 regex101.com 这样的在线工具来测试正则表达式将对开发模式大有帮助。
示例
- logstash-30-yyyy.mm.dd:应在 30 天后删除的每日索引,不匹配该模式的索引将在 365 天后删除
- filtertype: age
source: creation_date
direction: older
unit: days
unit_count: 365
unit_count_pattern: -([0-9]+)-
- logstash-12-yyyy.mm:应在 12 个月后删除的每月索引,不匹配该模式的索引将在 3 个月后删除
- filtertype: age
source: creation_date
direction: older
unit: months
unit_count: 3
unit_count_pattern: -([0-9]+)-
- _3_logstash-yyyy.mm.dd:应在 3 年后删除的每日索引,不匹配该模式的索引将被忽略
- filtertype: age
source: creation_date
direction: older
unit: years
unit_count: -1
unit_count_pattern: ^_([0-9]+)_
重要
请务必注意此参数与 unit_count 之间的相互作用!