我需要使用Elasticseach日期名称索引处理器来使每个日志都转到正确的索引。很简单。
我的问题是我需要使用字段内容来动态命名索引,但是我不知道该怎么做。
下面有我的管道。如您所见,我需要使用一个名为“ deployment”的字段(这是一个现有字段)来命名索引,但是我不知道如何。
PUT _ingest/pipeline/ixmd-date-index
{
"description": "indexa la entrada de log en el índice correcto según el logdate",
"processors" : [
{
"date_index_name" : {
"field" : "logdate",
"index_name_prefix" : "ixmd-{[fields.deployment]}-",
"date_rounding" : "d",
"date_formats": ["yyyy-MM-dd HH:mm:ss.SSSS", "ISO8601"]
}
}
]
}
我尝试了几种格式,例如“ ixmd-%{[fields] [deployment]}-”,“ ixmd- {fields.deployment}-”,...但都无效。
答案 0 :(得分:0)
尝试使用"index_name_prefix" : "ixmd-%{+yyyy.MM.dd}"
您可以使用日期为数据建立索引。
答案 1 :(得分:0)
我做到了!
正确的管道是:
PUT _ingest/pipeline/ixmd-date-index
{
"description": "indexa la entrada de log en el índice correcto según el logdate",
"processors" : [
{
"date_index_name" : {
"field" : "logdate",
"index_name_prefix" : "ixmd-{{ fields.deployment }}-",
"date_rounding" : "d",
"date_formats": ["yyyy-MM-dd HH:mm:ss.SSSS"]
}
}
]
}
因此访问字段的正确方法是使用{{my_field}}。在我的示例中,它是 {{fields.deployment}} ,因此为我定义索引名称前缀的正确方法是:
"index_name_prefix" : "ixmd-{{ fields.deployment }}-"
然后我将获得名为“ ixmd-server1-2018.09.12”,“ ixmd-server2-2018.09.12”等的索引。