使用场景:Elasticsearch每天生成一个索引存储操作日志,为了不每天修改存储索引名,即每天写到一个固定的索引别名下,使用es Rollover滚动生成索引。
一 . 添加模版
PUT _template/test_template
{
"index_patterns" : [
"test*" # 正则,以此前缀的索引都依照此模版
],
"settings" : {
"index" : {
"number_of_shards" : "3",
"number_of_replicas" : "1",
"mapping" : {
"total_fields" : {
"limit" : "1000" # 最大字段数
}
}
}
},
"mappings" : {
"dynamic_templates" : [
{
"strings" : {
"mapping" : {
"type" : "keyword"
},
"match_mapping_type" : "string"
}
},
{
"integers" : {
"mapping" : {
"type" : "keyword"
},
"match_mapping_type" : "long"
}
},
{
"floats" : {
"mapping" : {
"type" : "keyword"
},
"match_mapping_type" : "double"
}
}
]
},
"aliases" : {
"aliases_test" : { } # 添加大别名 也可不添加 可在{}添加其他参数
}
}
二 . 手动创建索引
第一次需要手动创建索引,并添加一个固定的滚动别名,操作日志之后会固定往滚动别名中发送
注意:手动创建索引时 需要指定动态日期,后缀为6位以内数字格式
PUT %3Ctest-%7Bnow%2Fd%7D-000001%3E
{
"aliases": {
"test_rollover": { # 创建索引时指定滚动别名
}
}
}
%3Ctest-%7Bnow%2Fd%7D-000001%3E == <test-{now/d}-000001>
查看索引格式是否为指定格式 “provided_name” : “<test-{now/d}-000001>”
"number_of_shards" : "3",
"provided_name" : "<test-{now/d}-000001>",
"creation_date" : "1668700803060",
"number_of_replicas" : "0",
"uuid" : "4LXDZAhUTg20ivzmavEnxQ",
"version" : {
"created" : "7090399"
三 . Rollover滚动生成
POST /test_rollover/_rollover
{
"conditions": {
"max_age": "0d", # 0天
"max_docs": 0, # 0条文档
"max_size": "0gb" # 0GB数据
}
}
手动触发滚动Rollover,符合三个条件中任意一条件即可触发Rollover
可编辑脚本定时调度触发Rollover
触发滚动后查看索引是否创建,是否自动切换别名