Saltar al contenido

Error de Elasticsearch: cluster_block_exception [FORBIDDEN/12/index read-only / allow delete (api)], se superó la marca de agua del disco de la etapa de inundación

Solución:

Esto sucede cuando Elasticsearch cree que el disco se está quedando sin espacio, por lo que se coloca en modo de solo lectura.

Por defecto, la decisión de Elasticsearch se basa en la 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:

$ curl -XPUT -H "Content-Type: application/json" https://[YOUR_ELASTICSEARCH_ENDPOINT]:9200/_all/_settings -d '{"index.blocks.read_only_allow_delete": null}'

Solución 2: cambie la configuración de la marca de agua de la etapa de inundación

Cambiar el "cluster.routing.allocation.disk.watermark.flood_stage" ajuste a otra cosa. Puede establecerse en un porcentaje más bajo o en un valor absoluto. A continuación, se muestra un ejemplo de cómo cambiar la configuración de los documentos:

PUT _cluster/settings
{
  "transient": {
    "cluster.routing.allocation.disk.watermark.low": "100gb",
    "cluster.routing.allocation.disk.watermark.high": "50gb",
    "cluster.routing.allocation.disk.watermark.flood_stage": "10gb",
    "cluster.info.update.interval": "1m"
  }
}

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.

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:

Elasticsearch :: Transporte :: Transporte :: Errores :: Prohibido: [403]
{“error”: {“root_cause”:[{“type”:”cluster_block_exception”,”reason”:”blocked
by: [FORBIDDEN/12/index read-only / allow delete
(api)]; “}],” tipo “:” cluster_block_exception “,” motivo “:” bloqueado por:
[FORBIDDEN/12/index read-only / allow delete (api)]; “},” estado “: 403}

O en /usr/local/var/log/elasticsearch.log puede ver registros similares a:

marca de agua de disco de etapa de inundación [95%] excedido en
[nCxquc7PTxKvs6hLkfonvg][nCxquc7][/usr/local/var/lib/elasticsearch/nodes/0]

gratis: 15.3gb[4.1%], todos los índices de este nodo se marcarán como de solo lectura

Luego, puede solucionarlo ejecutando los siguientes comandos:

curl -XPUT -H "Content-Type: application/json" http://localhost:9200/_cluster/settings -d '{ "transient": { "cluster.routing.allocation.disk.threshold_enabled": false } }'
curl -XPUT -H "Content-Type: application/json" http://localhost:9200/_all/_settings -d '{"index.blocks.read_only_allow_delete": null}'

curl -XPUT -H "Content-Type: application/json" http://localhost:9200/_all/_settings -d '{"index.blocks.read_only_allow_delete": null}'

DE

https://techoverflow.net/2019/04/17/how-to-fix-elasticsearch-forbidden-12-index-read-only-allow-delete-api/

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *