提问要多花一点心思哦

date_index_name processor 如何设置动态的 prefix

Elasticsearch | 作者 Chen Dayu | 发布于2017年11月10日 | 阅读数:1986

场景:
收集结构相同的,来自不同应用的日志,索引到各自的index,索引之前会使用 pipeline 对日志进行结构化和其他一些处理
由于日志收集侧不能动态生成 log-2017-11-11 这样的索引名,所以希望通过 date_index_name  processor 来修改 _index,但是这个 processor 似乎必须必须制定 prefix 参数,否则会直接把 _index 改成 2017-11-11 这样一个日期…
所以问题就是 date_index_name processor 的 prefix 参数能不能动态指定,或者 ingest pipeline 有没有其他的功能可以完成 _index 的随日期滚动
已邀请:

medcl - 今晚打老虎。

赞同来自:

问题可以再补充完善一点么?

medcl - 今晚打老虎。

赞同来自:

字段 `_index` 是可以直接修改的,使用 set processor 就可以。
POST _ingest/pipeline/_simulate
{
"pipeline" :
{
"description": "_description",
"processors": [{
"set" : {
"field" : "_index",
"value" : "{{app}}-data"
}
}
]
},
"docs": [
{
"_index": "index",
"_type": "type",
"_id": "id",
"_source": {
"foo": "bar",
"app":"tomcat"
}
},
{
"_index": "index",
"_type": "type",
"_id": "id",
"_source": {
"foo": "rab",
"app":"nginx"

}
}
]
}

结果
 
{
"docs": [
{
"doc": {
"_index": "tomcat-data",
"_id": "id",
"_type": "type",
"_source": {
"app": "tomcat",
"foo": "bar"
},
"_ingest": {
"timestamp": "2017-11-13T03:58:04.485Z"
}
}
},
{
"doc": {
"_index": "nginx-data",
"_id": "id",
"_type": "type",
"_source": {
"app": "nginx",
"foo": "rab"
},
"_ingest": {
"timestamp": "2017-11-13T03:58:04.485Z"
}
}
}
]
}

 

要回复问题请先登录注册