我试图用简单的OpenSearch条件在min_doc_count中设置索引滚转,但是我得到了"message": "Missing rollover_alias index setting [index=app_logs-000002]"错误。我有一个名为app_logs的滚转别名,并将以下策略(为了演示目的,在3个文档之后滚动是虚拟的)附加到索引中:
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
app_logs app_logs-000001 - - - false
app_logs app_logs-000002 - - - trueGET _cat/indices
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时,我得到:
{
"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时,我得到:
{
"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时,我得到:
{
"ism_rollover" : {
"order" : 0,
"index_patterns" : [
"app_logs-*"
],
"settings" : {
"index" : {
"opendistro" : {
"index_state_management" : {
"rollover_alias" : "app_logs"
}
}
}
},
"mappings" : { },
"aliases" : { }
}
}所以rollover_alias在模板中。为什么在模板的新索引中不使用这个?谢谢!
发布于 2022-09-22 11:33:29
我也遇到过类似的问题。问题是,指数需要在ism policy和template之后创建。我不确定您是否找到了解决方案,但对于那些未来的用户来说,这可能是有用的。
一些医生:
关于设置滚动索引策略的非常有用的示例:关于同一主题的https://opensearch.org/docs/latest/im-plugin/ism/policies/#sample-policy-with-ism-template-for-auto-rollover
在您的情况下,策略似乎没有正确地应用于您的索引,这很可能是您在创建策略和模板之前创建索引的结果。如果要将策略添加到索引中,请参阅上面链接的AWS文档中的Create an ISM policy步骤6:
POST _plugins/_ism/add/my-index
{
"policy_id": "my-policy-id"
}下面是我如何使用策略和模板来解决这个问题:
above)
)
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索引与其关联起来。这将随后修复这个丢失的别名问题。
https://stackoverflow.com/questions/73268533
复制相似问题