首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在rollover_alias中缺少OpenSearch索引设置

在rollover_alias中缺少OpenSearch索引设置
EN

Stack Overflow用户
提问于 2022-08-07 15:00:53
回答 1查看 758关注 0票数 0

我试图用简单的OpenSearch条件在min_doc_count中设置索引滚转,但是我得到了"message": "Missing rollover_alias index setting [index=app_logs-000002]"错误。我有一个名为app_logs的滚转别名,并将以下策略(为了演示目的,在3个文档之后滚动是虚拟的)附加到索引中:

代码语言:javascript
复制
PUT _plugins/_ism/policies/rollover_policy
{
    "policy": {
    "description": "Rollover policy",
    "default_state": "rollover",
    "states": [
        {
            "name": "rollover",
            "actions": [
                {
                    "rollover": {
                        "min_doc_count": 3
                    }
                }
            ],
            "transitions": []
        }
    ],
    "ism_template": [
        {
            "index_patterns": [
                "app_logs-*"
            ]
        }
    ]
    }
}

GET _cat/aliases

代码语言:javascript
复制
app_logs                                   app_logs-000001                                        - - - false
app_logs                                   app_logs-000002                                        - - - true

GET _cat/indices

代码语言:javascript
复制
yellow open app_logs-000002               V4j0gxaYTcqoQZvtd0u2zc 1 1    6 0  4.1kb  4.1kb
yellow open app_logs-000001               AnPjlOq6Q5We411z2q_YpQ 1 1    5 0 18.8kb 18.8kb
...

在执行GET _opendistro/_ism/explain/app_logs-000002?pretty时,我得到:

代码语言:javascript
复制
{
  "app_logs-000002" : {
    "index.plugins.index_state_management.policy_id" : "rollover_policy",
    "index.opendistro.index_state_management.policy_id" : "rollover_policy",
    "index" : "app_logs-000002",
    "index_uuid" : "V4j0gxaYTcqoQZvtd0u2zc",
    "policy_id" : "rollover_policy",
    "policy_seq_no" : -2,
    "policy_primary_term" : 0,
    "rolled_over" : false,
    "index_creation_date" : 1659299029428,
    "state" : {
      "name" : "rollover",
      "start_time" : 1659299410303
    },
    "action" : {
      "name" : "rollover",
      "start_time" : 1659424192817,
      "index" : 0,
      "failed" : true,
      "consumed_retries" : 3,
      "last_retry_time" : 1659424804833
    },
    "step" : {
      "name" : "attempt_rollover",
      "start_time" : 1659424192817,
      "step_status" : "failed"
    },
    "retry_info" : {
      "failed" : false,
      "consumed_retries" : 0
    },
    "info" : {
      "message" : "Missing rollover_alias index setting [index=app_logs-000002]"
    },
    "enabled" : false
  },
  "total_managed_indices" : 1
}

当我做GET app_logs-000002/_settings时,我得到:

代码语言:javascript
复制
{
  "app_logs-000002" : {
    "settings" : {
      "index" : {
        "creation_date" : "1659299029428",
        "number_of_shards" : "1",
        "number_of_replicas" : "1",
        "uuid" : "V4j0gxaYTcqoQZvtd0u2zc",
        "version" : {
          "created" : "136227827"
        },
        "provided_name" : "app_logs-000002"
      }
    }
  }
}

因此,是的,滚动别名设置是真正缺少那里。但我希望这将是自动添加。当我做GET _template时,我得到:

代码语言:javascript
复制
{
  "ism_rollover" : {
    "order" : 0,
    "index_patterns" : [
      "app_logs-*"
    ],
    "settings" : {
      "index" : {
        "opendistro" : {
          "index_state_management" : {
            "rollover_alias" : "app_logs"
          }
        }
      }
    },
    "mappings" : { },
    "aliases" : { }
  }
}

所以rollover_alias在模板中。为什么在模板的新索引中不使用这个?谢谢!

EN

回答 1

Stack Overflow用户

发布于 2022-09-22 11:33:29

我也遇到过类似的问题。问题是,指数需要在ism policytemplate之后创建。我不确定您是否找到了解决方案,但对于那些未来的用户来说,这可能是有用的。

一些医生:

关于设置滚动索引策略的非常有用的示例:关于同一主题的https://opensearch.org/docs/latest/im-plugin/ism/policies/#sample-policy-with-ism-template-for-auto-rollover

在您的情况下,策略似乎没有正确地应用于您的索引,这很可能是您在创建策略和模板之前创建索引的结果。如果要将策略添加到索引中,请参阅上面链接的AWS文档中的Create an ISM policy步骤6:

代码语言:javascript
复制
POST _plugins/_ism/add/my-index
{
  "policy_id": "my-policy-id"
}

下面是我如何使用策略和模板来解决这个问题:

above)

  • Create

  • 实现ISM策略(如您所做的
  1. 模板

)

代码语言:javascript
复制
PUT _template/ism_rollover_app
{
   "index_patterns": "app_logs-*",
    "settings": {
    "index": {
      "opendistro.index_state_management.rollover_alias": "app_logs"
    }
  }
}

创建一个名为^.*-\d+$)的初始索引(或与regex ^.*-\d+$)匹配的某些变量)。

这应该会看到app_logs-00001是从ism_rollover_app模板创建的,并将app_logs索引与其关联起来。这将随后修复这个丢失的别名问题。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/73268533

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档