Как отменить настройку индекса Elasticsearch на readonly?

поэтому я просто установил один из моих индексов на readonly, и теперь хочу удалить его.

, чтобы установить его в значение readonly:

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

когда я попытался удалить его, я получил такой ответ:

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

затем я попытался установить индекс на readonly false:

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

но это дает то же сообщение об ошибке, что и выше. Итак, как установить readonly обратно в false?

3 ответов


правильный способ сделать es index только для чтения

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

изменить true до false чтобы отменить его.

вы устанавливаете не динамическую настройку с

   {
      "index": {
        "index.blocks.read_only": false
      }
    }

что, я думаю, не было ваше намерение. Также я думаю, что вы должны были увидеть ошибку во время первой операции, так как не динамические настройки могут быть обновлены только на close indices.

run

POST your_index/_close

а затем попробуйте изменить его.


в версии 2.x из ElasticSearch (ES) вы должны сделать следующее

PUT your_index/_settings

{
  "index": {
    "blocks": {
      "write": "false",
      "read_only": "false"
    }
  }
}

при установке индекса в read_only к true внутренне ES изменяет write в true, а также и просто возвращаясь read_only для false по-прежнему не позволяет обновлять индекс, поэтому вам нужно обновить write явная установка.


ответы действительно старые, поэтому я добавлю эластичный-6 ответ тоже:

PUT /index-name/_settings
{
  "index.blocks.read_only_allow_delete": null
}

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

FYI (для контекста): я столкнулся с индексами только для чтения из-за нехватки диска и получил сообщения об ошибках от logstash:

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

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