Как отменить установку индекса Elasticsearch для чтения?
Поэтому я просто установил один из моих индексов только для чтения, и теперь хочу удалить его.
Чтобы установить его только для чтения:
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?
Ответы
Ответ 1
Правильный способ сделать es index
только для чтения
PUT your_index/_settings
{
"index": {
"blocks.read_only": true
}
}
измените true
на false
, чтобы отменить его.
Вы устанавливаете нединамическую настройку с помощью
{
"index": {
"index.blocks.read_only": false
}
}
который, я думаю, не был вашим намерением. Также я думаю, что вы должны были увидеть ошибку во время первой операции, так как не динамические настройки могут обновляться только на close indices
.
бег
POST your_index/_close
а затем попробуйте изменить его.
Ответ 2
Ответы действительно старые, поэтому я добавлю и ответ с упругим 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"
elasticsearch:
ClusterBlockException[blocked by: [FORBIDDEN/12/index read-only / allow delete
(api)];]
Ответ 3
В версии 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
в явном виде.
Ответ 4
Если у вас установлена Kibana, вы можете перейти к своему URL-адресу kibana:
Management (Left pane) -> Elasticseach Index Management -> Select your Index -> Edit Settings
затем обновите:
"index.blocks.read_only_allow_delete": "false"
Кроме того, чтобы установить его глобально для kibana, вы можете перейти к dev tools (левая панель) и сделать следующий запрос:
PUT _settings
{
"index": {
"blocks": {
"read_only_allow_delete": "false"
}
}
}
Ответ 5
curl -X PUT "localhost:9200/_all/_settings" -H 'Content-Type: application/json' -d'{ "index.blocks.read_only" : false } }'