我在Logstash事件中有一个自定义字段定义为表达式:
{ "customIndex" => "my-service-%{+YYYY.MM}" }
用于计算elasticsearch输出插件的索引名称的过滤器:
filter {
if [customIndex] {
mutate {
add_field => { "indexName" => "custom-%{customIndex}" }
}
} else {
mutate {
add_field => { "indexName" => "common-%{+YYYY.MM.dd}" }
}
}
}
但是对于自定义索引,它会创建无效名称custom-my-service-%{+YYYY.MM}
,并且不会评估%{+YYYY.MM}
表达式。
是否可以评估字段并获取custom-my-service-2016.11
?
答案 0 :(得分:1)
如果您可以将创建的字段重新格式化为:
{ "customIndex" => "my-service-%Y.%m" }
然后这个Ruby过滤器将起到作用:
ruby {
init => "require 'date'"
code => "event['indexName'] = 'custom-' + Date.today.strftime(event['customIndex'])"
}
Here是关于您可以使用的占位符的文档。