如何撤消将 Elasticsearch 索引设置为只读?

问题描述 投票:0回答:6

所以我只是将其中一个索引设置为只读,现在想删除它。

将其设置为只读:

PUT my_index/_settings
{ "index": { "index.blocks.read_only" : true } }

当我尝试删除它时,我得到了这样的回复:

ClusterBlockException[blocked by: [FORBIDDEN/5/index read-only (api)];]

然后我尝试将索引设置为只读 false:

PUT my_index/_settings
{ "index": { "index.blocks.read_only" : false } }

但这给出了与上面相同的错误消息。那么如何将readonly设置回false呢?

elasticsearch
6个回答
79
投票

答案真的很旧,所以我也会添加一个弹性6+的答案:

PUT /[_all|<index-name>]/_settings
{
  "index.blocks.read_only_allow_delete": null
}

https://www.elastic.co/guide/en/elasticsearch/reference/6.x/disk-allocator.html

仅供参考(上下文):由于磁盘不足,我遇到了只读索引,并从 Logstash 收到了错误消息:

...retrying failed action with response code: 403 ({"type"=>"cluster_block_exception", "reason"=>"blocked"

弹性搜索:

ClusterBlockException[blocked by: [FORBIDDEN/12/index read-only / allow delete
(API)];]


63
投票

es index
设置为只读的正确方法是

PUT your_index/_settings
{
  "index": {
    "blocks.read_only": true
  }
}

true
更改为
false
以撤消它。

您可以使用

设置非动态设置
   {
      "index": {
        "blocks.read_only": false
      }
    }

我认为这不是你的意图。另外,我认为您应该在第一次操作期间看到错误,因为非动态设置只能在

close indices
上更新。

奔跑

POST your_index/_close

然后尝试更改它。


12
投票
curl -X PUT "localhost:9200/_all/_settings" -H 'Content-Type: application/json' -d'{ "index.blocks.read_only" : false } }'

7
投票

如果您安装了 Kibana,您可以访问您的 kibana 网址:

Management (Left pane) -> Elasticseach Index Management -> Select your Index -> Edit Settings

然后更新:

"index.blocks.read_only_allow_delete": "false"

此外,要在 kibana 上全局设置它,您可以转到开发工具(左窗格)并提出以下请求:

PUT _settings
{
  "index": {
    "blocks": {
      "read_only_allow_delete": "false"
    }
  }
}

7
投票

在 ElasticSearch (ES) 2.x 版本中,您必须执行以下操作

PUT your_index/_settings
{
  "index": {
    "blocks": {
      "write": "false",
      "read_only": "false"
    }
  }
}

虽然在内部将索引设置为

read_only
为 true,ES 也会将
write
更改为 true,并且仅将
read_only
恢复为 false 仍然不允许您更新索引,因此您必须显式更新
write
设置。


2
投票

对于 6.x 获取设置:

curl elasticsearch-sc:9200/_settings?pretty

使索引/集群可写:

curl -XPUT -H "Content-Type: application/json" \
 http://elasticsearch-sc:9200/_all/_settings \
   -d '{"index.blocks.read_only_allow_delete": null}'
© www.soinside.com 2019 - 2024. All rights reserved.