Cuando intento publicar documentos en Elasticsearch de forma normal, aparece este error:
cluster_block_exception [FORBIDDEN/12/index read-only / allow delete (api)];
También veo este mensaje en los registros de Elasticsearch:
flood stage disk watermark [95%] exceeded ... all indices on this node will marked read-only
elasticsearch
Sean Hammond
fuente
fuente
Respuestas:
Esto sucede cuando Elasticsearch cree que el disco se está quedando sin espacio, por lo que se pone en modo de solo lectura.
Por defecto, la decisión de Elasticsearch se basa en el porcentaje de espacio libre en disco, por lo que en discos grandes esto puede suceder incluso si tiene muchos gigabytes de espacio libre.
La marca de agua de la etapa de inundación es del 95% de forma predeterminada, por lo que en una unidad de 1 TB necesita al menos 50 GB de espacio libre o Elasticsearch se pondrá en modo de solo lectura.
Para obtener documentos sobre la marca de agua de la etapa de inundación, consulte https://www.elastic.co/guide/en/elasticsearch/reference/6.2/disk-allocator.html .
La solución adecuada depende del contexto, por ejemplo, un entorno de producción frente a un entorno de desarrollo.
Solución 1: libere espacio en disco
Liberar suficiente espacio en disco para que más del 5% del disco esté libre resolverá este problema. Elasticsearch no saldrá automáticamente del modo de solo lectura una vez que haya suficiente disco libre, sin embargo, tendrá que hacer algo como esto para desbloquear los índices:
Solución 2: cambie la configuración de la marca de agua de la etapa de inundación
Cambie la
"cluster.routing.allocation.disk.watermark.flood_stage"
configuración a otra cosa. Puede configurarse en un porcentaje menor o en un valor absoluto. A continuación, se muestra un ejemplo de cómo cambiar la configuración de los documentos :Nuevamente, después de hacer esto, tendrá que usar el comando curl anterior para desbloquear los índices, pero después de eso no deberían volver a entrar en modo de solo lectura.
fuente
De forma predeterminada, Elasticsearch instalado entra en modo de solo lectura cuando tiene menos del 5% de espacio libre en disco. Si ve errores similares a este:
O en /usr/local/var/log/elasticsearch.log puede ver registros similares a:
Luego, puede solucionarlo ejecutando los siguientes comandos:
fuente
DE
https://techoverflow.net/2019/04/17/how-to-fix-elasticsearch-forbidden-12-index-read-only-allow-delete-api/
fuente
{"error":{"root_cause":[{"type":"index_not_found_exception","reason":"no such index [null] and no indices exist"
con tu comando, ¿alguna idea?_all
. Tuve que aplicarlo a cada índice manualmente._all
con el nombre del índice y repita la solicitud para cada índice.