При попытке отправить документы в Elasticsearch в обычном режиме я получаю следующую ошибку:
cluster_block_exception [FORBIDDEN/12/index read-only / allow delete (api)];
Я также вижу это сообщение в журналах Elasticsearch:
flood stage disk watermark [95%] exceeded ... all indices on this node will marked read-only
elasticsearch
Шон Хэммонд
источник
источник
Ответы:
Это происходит, когда Elasticsearch считает, что на диске мало места, поэтому он переходит в режим только для чтения.
По умолчанию решение Elasticsearch основывается на проценте свободного места на диске, поэтому на больших дисках это может произойти, даже если у вас много гигабайт свободного места.
Водяной знак этапа лавинной рассылки по умолчанию составляет 95%, поэтому на диске емкостью 1 ТБ вам понадобится не менее 50 ГБ свободного места, иначе Elasticsearch перейдет в режим только для чтения.
Документацию о водяном знаке стадии наводнения см. На https://www.elastic.co/guide/en/elasticsearch/reference/6.2/disk-allocator.html .
Правильное решение зависит от контекста - например, производственная среда или среда разработки.
Решение 1. Освободите место на диске
Эту проблему решит освобождение достаточного дискового пространства, чтобы было свободно более 5% диска. Elasticsearch не будет автоматически выходить из режима только для чтения, как только диск освободится, вам нужно будет сделать что-то вроде этого, чтобы разблокировать индексы:
Решение 2.Измените настройку водяного знака на этапе наводнения
Измените
"cluster.routing.allocation.disk.watermark.flood_stage"
настройку на что-нибудь другое. Он может быть установлен на более низкий процент или на абсолютное значение. Вот пример того, как изменить настройку из документации :Опять же, после этого вам придется использовать указанную выше команду curl, чтобы разблокировать индексы, но после этого они не должны снова переходить в режим только для чтения.
источник
По умолчанию установленный Elasticsearch переходит в режим только для чтения, если у вас менее 5% свободного места на диске. Если вы видите похожие ошибки:
Или в /usr/local/var/log/elasticsearch.log вы можете увидеть журналы, похожие на:
Затем вы можете исправить это, выполнив следующие команды:
источник
ИЗ
https://techoverflow.net/2019/04/17/how-to-fix-elasticsearch-forbidden-12-index-read-only-allow-delete-api/
источник
{"error":{"root_cause":[{"type":"index_not_found_exception","reason":"no such index [null] and no indices exist"
от вашей команды, есть идеи?_all
. Пришлось применить его к каждому индексу вручную._all
на имя индекса и повторите запрос для каждого индекса.