Lorsque j'essaye de publier des documents sur Elasticsearch comme d'habitude, j'obtiens cette erreur:
cluster_block_exception [FORBIDDEN/12/index read-only / allow delete (api)];
Je vois également ce message sur les journaux Elasticsearch:
flood stage disk watermark [95%] exceeded ... all indices on this node will marked read-only
elasticsearch
Sean Hammond
la source
la source
Réponses:
Cela se produit lorsque Elasticsearch pense que l'espace disque est insuffisant et qu'il se met donc en mode lecture seule.
Par défaut, la décision d'Elasticsearch est basée sur le pourcentage d'espace disque disponible, donc sur les gros disques, cela peut se produire même si vous disposez de plusieurs gigaoctets d'espace libre.
Le filigrane de la phase d'inondation est de 95% par défaut, donc sur un lecteur de 1 To, vous avez besoin d'au moins 50 Go d'espace libre ou Elasticsearch se mettra en mode lecture seule.
Pour obtenir des documents sur le filigrane de la phase d'inondation, consultez https://www.elastic.co/guide/en/elasticsearch/reference/6.2/disk-allocator.html .
La bonne solution dépend du contexte - par exemple un environnement de production ou un environnement de développement.
Solution 1: libérer de l'espace disque
Libérer suffisamment d'espace disque pour que plus de 5% du disque soit libre résoudra ce problème. Elasticsearch ne sortira pas automatiquement du mode lecture seule une fois que suffisamment de disque sera libre, vous devrez faire quelque chose comme ceci pour déverrouiller les index:
Solution 2: modifier le paramètre de filigrane de la phase d'inondation
Changez le
"cluster.routing.allocation.disk.watermark.flood_stage"
paramètre pour autre chose. Il peut être défini sur un pourcentage inférieur ou sur une valeur absolue. Voici un exemple de modification du paramètre à partir de la documentation :Encore une fois, après avoir fait cela, vous devrez utiliser la commande curl ci-dessus pour déverrouiller les index, mais après cela, ils ne devraient pas revenir en mode lecture seule.
la source
Par défaut, Elasticsearch installé passe en mode lecture seule lorsque vous disposez de moins de 5% d'espace disque libre. Si vous voyez des erreurs similaires à ceci:
Ou dans /usr/local/var/log/elasticsearch.log, vous pouvez voir des journaux similaires à:
Ensuite, vous pouvez le réparer en exécutant les commandes suivantes:
la source
DE
https://techoverflow.net/2019/04/17/how-to-fix-elasticsearch-forbidden-12-index-read-only-allow-delete-api/
la source
{"error":{"root_cause":[{"type":"index_not_found_exception","reason":"no such index [null] and no indices exist"
avec votre commande, une idée?_all
. J'ai dû l'appliquer manuellement à chaque index._all
par le nom de l'index et répétez la demande pour chaque index.