elasticsearch AWS elasticsearch禁用所有索引的复制,elasticsearch,kibana,aws-elasticsearch,elasticsearch,Kibana,Aws Elasticsearch" /> elasticsearch AWS elasticsearch禁用所有索引的复制,elasticsearch,kibana,aws-elasticsearch,elasticsearch,Kibana,Aws Elasticsearch" />

elasticsearch AWS elasticsearch禁用所有索引的复制

elasticsearch AWS elasticsearch禁用所有索引的复制,elasticsearch,kibana,aws-elasticsearch,elasticsearch,Kibana,Aws Elasticsearch,我使用的是单节点AWS ES群集。目前,它的健康状态显示为黄色,这是显而易见的,因为没有其他节点可供Amazon ES分配副本。我想将所有当前和即将发布的索引的复制设置为0。我已按此模式创建了索引: app-one-2021.02.10 app-two-2021.01.11 so on... 这些索引当前的副本数设置为1。要禁用所有索引的复制,我将在索引模式中抛出PUT请求: PUT /app-one-*/_settings { "index" : { "n

我使用的是单节点AWS ES群集。目前,它的健康状态显示为黄色,这是显而易见的,因为没有其他节点可供Amazon ES分配副本。我想将所有当前和即将发布的索引的复制设置为
0
。我已按此模式创建了索引:

app-one-2021.02.10
app-two-2021.01.11
so on...
这些索引当前的
副本数
设置为
1
。要禁用所有索引的复制,我将在索引模式中抛出PUT请求:

PUT /app-one-*/_settings
{
 "index" : {
  "number_of_replicas":0
 }
}
因为我在这里使用了通配符,所以它应该在所有匹配索引中将
副本的数量
设置为
0
,这是成功的

但如果将来有任何新的指数被创建,比如app-one-2021.03.10。然后在此索引中,复制副本的数量再次设置为1

每次我都要运行一个PUT请求,将
复制副本的数量设置为
0
,这很无聊。为什么即使我在PUT请求中使用了通配符(*),新索引也不会自动将
副本数
转换为
0


是否有任何方法可以将复制(
numberofu\u replications
设置为
0
)完全设置为0,而不管它是新索引还是旧索引。如何实现这一点?

是的,方法是定义索引模板

在Elasticsearch v7.8之前,您只能使用
\u模板
API()。例如,在您的情况下,您可以创建一个与所有app-*索引匹配的模板:

PUT _template/app_settings
{
  "index_patterns": ["app-*"],
  "settings": {
    "number_of_replicas": 0
  }
}
自Elasticsearch v7.8以来,旧API仍然受支持,但已弃用,您可以使用
\u index\u模板
API()



更新:为
\u模板
\u索引\u模板
API添加代码段。

是的,方法是定义索引模板

在Elasticsearch v7.8之前,您只能使用
\u模板
API()。例如,在您的情况下,您可以创建一个与所有app-*索引匹配的模板:

PUT _template/app_settings
{
  "index_patterns": ["app-*"],
  "settings": {
    "number_of_replicas": 0
  }
}
自Elasticsearch v7.8以来,旧API仍然受支持,但已弃用,您可以使用
\u index\u模板
API()



更新:为
\u模板
\u索引\u模板
API添加代码片段。

首先,在AWS elasticsearch中,我们必须使用
\u模板
而不是
\u索引\u模板
。其次,我尝试创建了一个模板,但我所有的新索引都提供了
复制副本的数量
1
。有什么不对劲吗?AWS Elasticsearch基于开放发行版,这也区分了从Elasticsearch v7.8()开始的_模板和_索引_模板。你能把你的模板贴在什么地方吗?这样我们就可以看一看了?是否有其他模板与相同的索引模式匹配?如果是这样,您可能希望增加自定义模板的
priority
参数的值(请参阅文档)。不,我没有用于相同索引模式的其他模板,因此优先级无关紧要。我注意到的一件事是,我的
.kibana
索引将
自动扩展副本设置为
0-1
,这意味着如果可以,可以进行复制。当我进行
curl/\u模板/app\u设置时,是否应该将其设置为
0
。设置部分显示空值,即,
{}
而不是
{numberofu复制副本:0}
。为什么即使我提出了正确的PUT请求,也会出现这种情况?为了确保,您对模板有读/写权限吗?首先,在AWS elasticsearch中,我们必须使用
\u模板
,而不是
\u索引\u模板
。其次,我尝试创建了一个模板,但我所有的新索引都提供了
复制副本的数量
1
。有什么不对劲吗?AWS Elasticsearch基于开放发行版,这也区分了从Elasticsearch v7.8()开始的_模板和_索引_模板。你能把你的模板贴在什么地方吗?这样我们就可以看一看了?是否有其他模板与相同的索引模式匹配?如果是这样,您可能希望增加自定义模板的
priority
参数的值(请参阅文档)。不,我没有用于相同索引模式的其他模板,因此优先级无关紧要。我注意到的一件事是,我的
.kibana
索引将
自动扩展副本设置为
0-1
,这意味着如果可以,可以进行复制。当我进行
curl/\u模板/app\u设置时,是否应该将其设置为
0
。设置部分显示空值,即,
{}
而不是
{numberofu复制副本:0}
。为什么即使在我发出正确的PUT请求时也会出现这种情况?请确定,您是否拥有对模板的读/写权限?