1、创建滚动策略
可以在Kibana中新建 ,也可以通过API 创建
API 创建
PUT _ilm/policy/dns_policy
{
"policy": {
"phases": {
"hot": {
"actions": {
"rollover": {
"max_size": "50GB",
"max_age": "30d"
}
}
},
"delete": {
"min_age": "90d",
"actions": {
"delete": {}
}
}
}
}
}
2、将策略应用到策略模板当中
PUT _template/dns_template
{
"index_patterns": ["dnslog-*"],
"settings": {
"number_of_shards": 3,
"number_of_replicas": 1,
"index.lifecycle.name": "dns_policy",
"index.lifecycle.rollover_alias": "dnslog"
}
}
a.此模板将应用于所有以dnslog-开头的索引.
b.模板将把策略设置为dns_policy.
c. 索引周期滚动的别名为dnslog
3、创建一个初始索引
PUT dnslog-000001
{
"aliases": {
"dnslog":{
"is_write_index": true
}
}
}
注意aliases 中的别名为dnslog ,和第二步骤中的"index.lifecycle.rollover_alias": "dnslog" 保持一致.
当索引增长超过50GB时,索引生命周期管理将创建一个新索引,并将别名翻转过来自动使用新索引。
比如创建 dnslog-000002 ,以此类推
注意: 我们往索引里写数据时,只需往索引别名dnslog 写入即可。
附录:索引模板添加映射类型
PUT _template/flow_template
{
"index_patterns": ["te*", "bar*"],
"settings": {
"number_of_shards": 1
},
"mappings": {
"_doc": {
"_source": {
"enabled": false
},
"properties": {
"host_name": {
"type": "keyword"
},
"created_at": {
"type": "date",
"format": "yyyy-MM-dd HH:mm:ss||yyyy-MM-dd"
}
}
}
}
}