在 logstash 中创建季度索引
create quarterly index in logstash
你好,我正在尝试使用 log-stash 在 ES 中创建季度索引,我知道如何在 log-stash 中每周创建索引
这是我的配置 -
> output {
> elasticsearch {
> hosts => "localhost"
> index => "logstash-%{+xxxx.ww}"
>
>
> }
> stdout{}
> }
但是我如何创建季度索引或者我们如何在任何变量中包含月份以便我可以计算季度。
谢谢
日期数学目前不支持指定季度 Q
和 an issue is still open 以对此进行改进。
理想情况下,如果我们可以用 now-3M/3M
之类的东西来规避这个缺点,但也不支持舍入的倍数。
在问题解决之前,一种解决方案是使用月度指数,当一个季度过去后,将前三个月度指数重新编入一个季度指数。
另一个解决方案是在 Logstash ruby
过滤器中预先计算季度,然后在 elasticsearch
输出中使用它,如下所示:
filter {
ruby {
code => "event.set('quarter', Date.today.year + '-' + (Date.today.month / 3.0).ceil)"
}
}
output {
elasticsearch {
hosts => "localhost"
index => "logstash-%{quarter}"
}
}
你好,我正在尝试使用 log-stash 在 ES 中创建季度索引,我知道如何在 log-stash 中每周创建索引 这是我的配置 -
> output {
> elasticsearch {
> hosts => "localhost"
> index => "logstash-%{+xxxx.ww}"
>
>
> }
> stdout{}
> }
但是我如何创建季度索引或者我们如何在任何变量中包含月份以便我可以计算季度。 谢谢
日期数学目前不支持指定季度 Q
和 an issue is still open 以对此进行改进。
理想情况下,如果我们可以用 now-3M/3M
之类的东西来规避这个缺点,但也不支持舍入的倍数。
在问题解决之前,一种解决方案是使用月度指数,当一个季度过去后,将前三个月度指数重新编入一个季度指数。
另一个解决方案是在 Logstash ruby
过滤器中预先计算季度,然后在 elasticsearch
输出中使用它,如下所示:
filter {
ruby {
code => "event.set('quarter', Date.today.year + '-' + (Date.today.month / 3.0).ceil)"
}
}
output {
elasticsearch {
hosts => "localhost"
index => "logstash-%{quarter}"
}
}