Elasticsearch 滚动索引创建

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"
        }
      }
    }
  }
}
发布了192 篇原创文章 · 获赞 254 · 访问量 76万+

猜你喜欢

转载自blog.csdn.net/yulei_qq/article/details/100704135
今日推荐