Beim Versuch, Dokumente wie gewohnt in Elasticsearch zu veröffentlichen, wird folgende Fehlermeldung angezeigt:
cluster_block_exception [FORBIDDEN/12/index read-only / allow delete (api)];
Ich sehe diese Meldung auch in den Elasticsearch-Protokollen:
flood stage disk watermark [95%] exceeded ... all indices on this node will marked read-only
elasticsearch
Sean Hammond
quelle
quelle
Antworten:
Dies ist der Fall, wenn Elasticsearch der Meinung ist, dass der Speicherplatz auf der Festplatte knapp wird, sodass er sich in den schreibgeschützten Modus versetzt.
Standardmäßig basiert die Entscheidung von Elasticsearch auf dem Prozentsatz des freien Speicherplatzes. Bei großen Festplatten kann dies auch dann passieren, wenn Sie über viele Gigabyte freien Speicherplatz verfügen.
Das Wasserzeichen für die Flutphase beträgt standardmäßig 95%. Auf einem 1-TB-Laufwerk benötigen Sie mindestens 50 GB freien Speicherplatz. Andernfalls wird Elasticsearch in den schreibgeschützten Modus versetzt.
Dokumente zum Wasserzeichen der Flutphase finden Sie unter https://www.elastic.co/guide/en/elasticsearch/reference/6.2/disk-allocator.html .
Die richtige Lösung hängt vom Kontext ab - zum Beispiel von einer Produktionsumgebung oder einer Entwicklungsumgebung.
Lösung 1: Geben Sie Speicherplatz frei
Wenn Sie genügend Speicherplatz freigeben, sodass mehr als 5% der Festplatte frei sind, wird dieses Problem behoben. Elasticsearch verlässt den schreibgeschützten Modus nicht automatisch, sobald genügend Festplatte frei ist. Sie müssen jedoch Folgendes tun, um die Indizes freizuschalten:
Lösung 2: Ändern Sie die Wasserzeicheneinstellung für die Flutstufe
Ändern Sie die
"cluster.routing.allocation.disk.watermark.flood_stage"
Einstellung auf etwas anderes. Sie kann entweder auf einen niedrigeren Prozentsatz oder auf einen absoluten Wert eingestellt werden. Hier ist ein Beispiel, wie Sie die Einstellung in den Dokumenten ändern können :Nachdem Sie dies getan haben, müssen Sie den obigen Befehl curl verwenden, um die Indizes zu entsperren. Danach sollten sie jedoch nicht mehr in den schreibgeschützten Modus wechseln.
quelle
Standardmäßig wechselt die installierte Elasticsearch in den schreibgeschützten Modus, wenn Sie weniger als 5% des freien Speicherplatzes haben. Wenn Sie ähnliche Fehler sehen:
Oder in /usr/local/var/log/elasticsearch.log sehen Sie Protokolle ähnlich den folgenden:
Anschließend können Sie das Problem beheben, indem Sie die folgenden Befehle ausführen:
quelle
VON
https://techoverflow.net/2019/04/17/how-to-fix-elasticsearch-forbidden-12-index-read-only-allow-delete-api/
quelle
{"error":{"root_cause":[{"type":"index_not_found_exception","reason":"no such index [null] and no indices exist"
mit Ihrem Befehl, eine Idee?_all
. Ich musste es manuell auf jeden Index anwenden._all
den Indexnamen und wiederholen Sie die Anforderung für jeden Index.