【问题标题】:illegal_argument_exception: index.lifecycle.rollover_alias [metricbeat-6.8.4-alias] does not point to index [metricbeat-6.8.4-2020.02.24]非法参数异常:index.lifecycle.rollover_alias [metricbeat-6.8.4-alias] 不指向索引 [metricbeat-6.8.4-2020.02.24]
【发布时间】:2020-02-24 14:24:41
【问题描述】:

目前正在寻求有关设置 ilm 的帮助,我已经设置了模板、索引别名和策略,如下所示

PUT metricbeat-6.8.4-alias-000001
{
  "aliases": {
    "metricbeat-6.8.4-alias": {
      "is_write_index": true
    }
  }
}

PUT _template/metricbeat-6.8.4-alias
{
  "index_patterns": ["metricbeat-6.8.4-*"],                 
  "settings": {
    "number_of_shards": 1,
    "number_of_replicas": 1,
    "index.lifecycle.name": "Delete_Index",      
    "index.lifecycle.rollover_alias": "metricbeat-6.8.4-alias"    
  }
}

但仍然出现如下错误

illegal_argument_exception: index.lifecycle.rollover_alias [metricbeat-6.8.4-alias] does not point to index [metricbeat-6.8.4-2020.02.24]

寻求帮助我如何正确设置 ilm ? 谢谢

【问题讨论】:

    标签: elasticsearch logstash kibana metricbeat


    【解决方案1】:

    使用生命周期策略创建别名是一个 3 步过程。

    Elastic provides a great tutorial

    简而言之:

    1. 创建定义适当阶段和操作的生命周期策略。
    2. 创建索引模板以将策略应用于每个新索引。
    3. 引导一个索引作为初始写入索引。

    我认为您是在创建第一个索引之后创建模板。您应该首先创建 ilm,然后在模板中指定要用于索引的 ilm 策略,最后创建第一个索引(引导程序)。

    代码示例:

    var indexName = "index_name";
    var indexPattern = $"{indexName}-*";
    var aliasName = $"{indexName}-alias";
    var policyName = $"{indexName}-policy";
    var firstIndexName = $"{indexName}-000001";
    
    PUT _ilm/policy/index_name-policy
    {
        "policy": {
            "phases": {
                "hot": {
                    "actions": {
                        "rollover": {
                            "max_size": "5gb",
                            "max_docs": 10000,
                            "max_age":"2d"
                        }
                    }
                },
                "warm": {
                    "min_age": "5d",
                    "actions": {
                    }
                },
                "delete": {
                    "min_age": "10d",
                    "actions": {
                        "delete": {}
                    }
                }
            }
        }
    }
    
    PUT _template/index_name-template
    {
        "index_patterns": ["{{.IndexPattern}}"],
        "settings": {
            "index.number_of_shards": "1",
            "index.number_of_replicas": "1",
            "index.lifecycle.name": "{{.PolicyName}}", 
            "index.lifecycle.rollover_alias": "{{.AliasName}}" 
        },
        "mappings": {
             "_source": {
                "enabled": true
             },
             "properties": {
                {{Properties}}
            }
        }
    }
    
    PUT index_name-000001
    {
       "aliases": {
            "{{.AliasName}}":{
                "is_write_index": true 
            }
        }
    }
    
    

    【讨论】:

    • PUT index_name-000001 之后出现错误resource_already_exists_exception
    【解决方案2】:

    如果您在生命周期政策中有翻转删除,然后也删除 别名这样的部分;

    之前

      "index_patterns": ["this-is-index-*"],                 
      "settings": {
        "number_of_shards": 3,
        "number_of_replicas": 1,
        "index.lifecycle.name": "delete-index-policy",      
        "index.lifecycle.rollover_alias": "this-is-alias-*.*.*" 
    

    之后

      "index_patterns": ["this-is-index-*"],                 
      "settings": {
        "number_of_shards": 3,
        "number_of_replicas": 1,
        "index.lifecycle.name": "delete-index-policy"  
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-01-10
      • 2019-10-07
      • 2018-02-26
      相关资源
      最近更新 更多