ES içerisinde index esnasında bir exception ve mesaj olarak size “disk usage exceeded” hatası gelebilir. Disk kullanım oranı “flood-stage watermark” eşiğini geçtiği için Elasticsearch veri yazma (index) işlemini engelliyor.
Elasticsearch, disk alanı azaldığında verilerin bütünlüğünü korumak amacıyla bazı önlemler alır. Hataya göre:
TOO_MANY_REQUESTS/12: Elasticsearch, çok fazla yazma isteği alındığını belirtiyor ve isteği reddediyor (HTTP 429 – “Too Many Requests”).
disk usage exceeded flood-stage watermark: Disk kullanımı, kritik seviyeye (varsayılan olarak %95) ulaştı.
Flood-Stage Watermark Nedir?
Elasticsearch’te üç ana disk kullanım eşiği vardır:
low watermark (%85): Yeni shard’ların bu düğüme atanması durdurulur.
high watermark (%90): Var olan shard’lar başka düğümlere taşınır.
flood-stage watermark (%95): Yazma işlemleri tamamen durdurulur. Index read only yapılıyor.
Aslında çözümü için diskte yer açmanız gerekiyor. Buna istinaden log dosyalarını, snapshot varsa onları veya büyük index kayıtlarınız varsa onları kaldırabilirsiniz. Bunun için /_cat/indices?v komutuyla index kayıtlarınızı inceleyebilirsiniz.
Bu hata için cluster settings içerisinde bazı noktalara değinmemiz gerekiyor.
Çözüm şöyle:
1. curl -XPUT -H “Content-Type: application/json” http://server:9200/_all/_settings -d ‘{“http://index.blocks.read_only_allow_delete”: null}’ -u USERNAME:PASSWORD
2. curl -X PUT “http://serverIP:9200/_cluster/settings?pretty” -H ‘Content-Type: application/json’ -d’ { “transient”: { “cluster.routing.allocation.disk.watermark.low”: “50gb”, “cluster.routing.allocation.disk.watermark.high”: “20gb”, “cluster.routing.allocation.disk.watermark.flood_stage”: “10gb”,
“http://cluster.info.update.interval”: “1m”}}’ -u USERNAME:PASSWORD
3. Tekrar index esnasında readonly hatası almaması için birinci adımı tekrar et.
Sorunu paylaştığı için Bora abiye teşekkürler.
Yorum bırakın