我们在公司的标准elasticsearch和curator实现之上有一个自定义包装器。我想知道策展人处理"每月/每周"当默认"时间单位"设置为"天"。
**我无法覆盖默认的"时间单位"
以下是我们的月/周指数如何命名的示例格式
每月索引的格式
logstash-test-monthly-2018.01
logstash-test-monthly-2018.02
logstash-test-monthly-2018.03
logstash-test-monthly-2018.04
...
...
logstash-test-monthly-2018.12
每周索引的格式
logstash-test-weekly-2018.01
logstash-test-weekly-2018.02
...
...
...
logstash-test-weekly-2018.51
logstash-test-weekly-2018.52
Delete_Index.yml - 策展人删除说明
actions:
1:
action: delete_indices
options:
ignore_empty_list: true
filters:
- exclude: true
filtertype: kibana
- exclude: false
kind: regex
filtertype: pattern
value: .*-monthly-.*
- range_to: 0
filtertype: period
source: name
range_from: -60
period_type: relative
timestring: '%Y.%m.%d'
exclude: true
unit: days
description: Delete indices more than X days old
2:
action: delete_indices
options:
ignore_empty_list: true
filters:
- exclude: true
filtertype: kibana
- exclude: false
kind: regex
filtertype: pattern
value: .*-weekly-.*
- range_to: 0
filtertype: period
source: name
range_from: -30
period_type: relative
timestring: '%Y.%m.%d'
exclude: true
unit: days
实施上述配置,每月索引保留期为60天,每周索引保留期为30天。
配置在** 08年4月4日执行,结果是**
执行后保留每月索引
logstash-test-monthly-2018.03
logstash-test-monthly-2018.04
由于以上索引^^仅包含31 + 4 = 35天的索引数据,而不是预期的60天。
我期待策展人将保留以下索引
logstash-test-monthly-2018.02
logstash-test-monthly-2018.03
logstash-test-monthly-2018.04
有人可以解释为什么策展人无法保留60天的索引吗?
答案 0 :(得分:4)
TL; DR :2月的天数较短,age
计算是秒数的倍数* unit
的适当数量。< / p>
所有这些都在Elastic网站的age
filter documentation中进行了解释。
年龄过滤器与期间过滤器
时间差的计算方法可能会导致沮丧。
将单位设为
months
,unit_count
至3
实际计算 年龄为3*30*24*60*60
,即7776000
秒。这可能很大 应对。如果日期为2017-01-01T02:30:00Z,或1483237800
在纪元 时间,减去7776000
秒使1475461800
,即。{ 2016-10-03T02:30:00Z。如果你试图匹配monthly
指数,index-2016.12
,index-2016.11
,2016.10
,2016.09
等,然后两者都有index-2016.09
和index-2016.10
将是截止日期older
。 这可能会导致意外行为。这可能导致问题的另一种方法是使用
weeks
。每周指数可能 从周日或周一开始。age
过滤器的计算不需要 考虑到这一点,仅仅测试它们之间的区别 执行时间和索引上的时间戳(来自任何来源)。另一种选择索引和快照的方法是
period
过滤器, 这可能是选择数周和数月的更好选择 补偿这些差异。
一旦您了解age
计算不超过unit_count
* unit
的适当秒数,那么保留是有道理的发生的方式。如上所述,您可以使用period
过滤器做得更好,因为它适用于完整的日,周,月和年。