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 的交互!