es中索引生命周期策略和索引生命周期的关系index.lifecycle.rollover_alias is empty or not defined

主要是下面的两个博客:

转载自博客:https://www.jianshu.com/p/9805b5173876

elk 索引生命周期报错 illegal_argument_exception: setting [index.lifecycle.rollover_alias] for index [xxx]...

干煸芸豆IP属地: 北京
2022.08.25 10:10:58字数 228阅读 2,299

背景:springboot 集成elk,每天生成一个索引 格式 {项目}-{环境}-{日期}

表现:为了节省空间,自动删除30天之前的日志,想应用elk 的索引生命周期,但是出现下面的异常
illegal_argument_exception: setting [index.lifecycle.rollover_alias] for index [xxx] is empty or not defined

原因:之前的索引生命周期在hot 阶段 启用了滚动更新,必须设置别名才行
解决方案:

  1. 关闭滚动更新(这个是干啥用的?开启后可以设置索引超过多少g,或超过多少天,自动新创建一个索引,我们每天创建一个索引,所以用不到这个)
    1. 把原来已经应用策略的索引,先删除策略,再重新添加上策略,否则老索引还是无法正常自动删除

      【Kibana】索引生命周期策略报错 index.lifecycle.rollover_alias does not po

      1. 一、背景
        在使用ELK进行日志收集分析时,我们经常会将每天的日志生成一个索引,类似somta-log-2021-02-25,在以前的版本是需要我们写脚本或者服务来删除不想要的索引的,但是在新的ES里面已经帮我们实现了,我们可以通过创建一个索引生命周期策略来将我们的索引进行合并,删除等操作,是非常方便的

        但是在ES 7.7.1上配置了一个生命周期索引,确出现了如下错误

        错误1:

        illegal_argument_exception: index.lifecycle.rollover_alias [somta-logs] does not point to index [somta-log-2021.02.23]

        错误2:

        illegal_argument_exception: rollover target [somta-logs] does not point to a write index

        错误3:

        illegal_argument_exception: setting [index.lifecycle.rollover_alias] for index [somta-log-2021.02.23] is empty or not defined

        二、问题原因
        先来看看我报错时,我的详细设置

        1、索引模板

        PUT _template/logs_template
        {
        "index_patterns": ["somta-log-*"], # 匹配所有以logs开头的索引
        "settings": {
        "number_of_shards": 1,
        "number_of_replicas": 1,
        "index.lifecycle.name": "log-30-days", # 绑定生命周期策略
        "index.lifecycle.rollover_alias": "somta-log" # 别名
        }
        }


        2、生命周期索引


        其实出现该问题的主要原因是“启用滚动更新”造成的,因为索引生命周期策略中滚动更新时需要对索引设置别名的,并且每个索引别名要不一样,但是我们是按天分割索引的,有没办法自动设置索引,所以这种方式明显不适合,启用滚动更新的索引格式一般为 apm-7.7.1-profile-000027

        三、解决办法


        我只需要禁用“启用滚动更新”即可,然后将修改后的索引生命周期策略重新添加到索引模板上即可

        注意:

        1.使用新的索引模板进行测试的时候,需要新建一个模板对应的索引,否则在此处的下拉框中将不会出现该索引模板

        2.如果原索引模板中已经存在索引生命周期策略,覆盖后新生成的索引会使用新覆盖的策略,但是已经存在的索引仍然是就策略,不会触发删除,需要手动删除

        作者:明天的地平线 https://www.bilibili.com/read/cv10124335/ 出处:bilibili

      2. 结论:索引生命周期和索引绑定,如果启动了滚动索引就是要索引的别名

posted on 2023-09-07 13:44  luzhouxiaoshuai  阅读(274)  评论(0编辑  收藏  举报

导航