Saat mencoba memposting dokumen ke Elasticsearch seperti biasa, saya mendapatkan kesalahan ini:
cluster_block_exception [FORBIDDEN/12/index read-only / allow delete (api)];
Saya juga melihat pesan ini di log Elasticsearch:
flood stage disk watermark [95%] exceeded ... all indices on this node will marked read-only
elasticsearch
Sean Hammond
sumber
sumber
Jawaban:
Ini terjadi saat Elasticsearch menganggap disk kehabisan ruang sehingga menempatkan dirinya dalam mode hanya-baca.
Secara default, keputusan Elasticsearch didasarkan pada persentase ruang disk yang kosong, jadi pada disk besar hal ini dapat terjadi meskipun Anda memiliki banyak gigabyte ruang kosong.
Watermark tahap banjir adalah 95% secara default, jadi pada drive 1TB Anda memerlukan setidaknya 50GB ruang kosong atau Elasticsearch akan menempatkan dirinya dalam mode hanya-baca.
Untuk dokumen tentang tanda air tahap banjir, lihat https://www.elastic.co/guide/en/elasticsearch/reference/6.2/disk-allocator.html .
Solusi yang tepat bergantung pada konteksnya - misalnya lingkungan produksi vs lingkungan pengembangan.
Solusi 1: Kosongkan ruang disk
Mengosongkan ruang disk yang cukup sehingga lebih dari 5% disk kosong akan menyelesaikan masalah ini. Elasticsearch tidak akan secara otomatis keluar dari mode hanya-baca setelah cukup disk kosong, Anda harus melakukan sesuatu seperti ini untuk membuka kunci indeks:
Solusi 2: Ubah pengaturan watermark tahap banjir
Ubah
"cluster.routing.allocation.disk.watermark.flood_stage"
pengaturan ke yang lain. Ini dapat diatur ke persentase yang lebih rendah atau ke nilai absolut. Berikut adalah contoh cara mengubah pengaturan dari dokumen :Sekali lagi, setelah melakukan ini Anda harus menggunakan perintah curl di atas untuk membuka kunci indeks, tetapi setelah itu mereka tidak boleh masuk ke mode hanya-baca lagi.
sumber
Secara default, Elasticsearch yang diinstal masuk ke mode hanya-baca jika Anda memiliki kurang dari 5% ruang disk kosong. Jika Anda melihat kesalahan seperti ini:
Atau di /usr/local/var/log/elasticsearch.log Anda dapat melihat log yang mirip dengan:
Kemudian Anda dapat memperbaikinya dengan menjalankan perintah berikut:
sumber
DARI
https://techoverflow.net/2019/04/17/how-to-fix-elasticsearch-forbidden-12-index-read-only-allow-delete-api/
sumber
{"error":{"root_cause":[{"type":"index_not_found_exception","reason":"no such index [null] and no indices exist"
dengan perintah Anda, ada ide?_all
. Saya harus menerapkannya ke setiap indeks secara manual._all
dengan nama indeks, dan ulangi permintaan untuk setiap indeks.