ইলাস্টিক অনুসন্ধান ত্রুটি: ক্লাস্টার_ব্লক_অপত্তি [ফোরবিডডেন / 12 / ইনডেক্স কেবল পঠনযোগ্য / অনুমতি মুছুন (এপিআই)], বন্যা পর্যায়ের ডিস্কের জলছাপ ছাড়িয়ে গেছে


136

স্বাভাবিক হিসাবে ইলাস্টিকসर्चে নথি পোস্ট করার চেষ্টা করার সময় আমি এই ত্রুটিটি পেয়ে যাচ্ছি:

cluster_block_exception [FORBIDDEN/12/index read-only / allow delete (api)];

আমি এই বার্তাটি ইলাস্টিকসার্ক লগগুলিতেও দেখতে পাই:

flood stage disk watermark [95%] exceeded ... all indices on this node will marked read-only

আপনি যখন এই প্রশ্নটি রেখেছিলেন তখন আমি কেবল এই সমস্যার মধ্যে পড়েছিলাম। ইএস মেমরি মুক্ত করার কথা বলছেন
অভিজিথ এস

উত্তর:


249

ইলাস্টিকসার্চ যখন মনে করে ডিস্কটি কম স্থানে চলছে তখন এটি কেবল পঠন মোডে নিজেকে রাখে This

ডিফল্টরূপে ইলাস্টিকসার্কের সিদ্ধান্তটি ডিস্ক স্পেসের মুক্ত শতাংশের উপর ভিত্তি করে তৈরি হয় , সুতরাং আপনার কাছে অনেক গিগাবাইট মুক্ত স্থান থাকা সত্ত্বেও বড় ডিস্কগুলিতে এটি ঘটতে পারে।

বন্যার মঞ্চের ওয়াটারমার্কটি ডিফল্ট হিসাবে 95%, সুতরাং 1TB ড্রাইভে আপনার কমপক্ষে 50 গিগাবাইট ফ্রি স্পেস প্রয়োজন বা ইলাস্টিকসার্ক নিজেকে কেবল পঠনযোগ্য মোডে রাখবে।

বন্যা পর্যায়ের ওয়াটারমার্ক সম্পর্কিত নথিগুলির জন্য https://www.elastic.co/guide/en/elasticsearch/references/6.2/disk-allocator.html দেখুন

সঠিক সমাধান প্রসঙ্গে নির্ভর করে - উদাহরণস্বরূপ একটি উত্পাদন পরিবেশ বনাম বিকাশের পরিবেশ।

সমাধান 1: ডিস্কের স্থান মুক্ত করুন

পর্যাপ্ত ডিস্কের স্থান খালি করা যাতে ডিস্কের 5% এরও বেশি বিনামূল্যে এই সমস্যার সমাধান করবে। যথেষ্ট পরিমাণ ডিস্ক নিখরচায় ফ্রি হয়ে গেলে ইলাস্টিকসার্চ স্বয়ংক্রিয়ভাবে কেবল পঠন মোড থেকে নিজেকে সরিয়ে নেবে না, সূচকগুলি আনলক করতে আপনাকে এমন কিছু করতে হবে:

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

সমাধান 2: বন্যার মঞ্চের জলছাপের সেটিংটি পরিবর্তন করুন

"cluster.routing.allocation.disk.watermark.flood_stage"অন্য কিছুতে সেটিংস পরিবর্তন করুন । এটি হয় কম শতাংশে বা একটি নিখুঁত মান সেট করা যেতে পারে। এখানে কীভাবে দস্তাবেজ থেকে সেটিংস পরিবর্তন করতে হবে তার একটি উদাহরণ :

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"
  }
}

আবার এটি করার পরে আপনাকে সূচকগুলি আনলক করতে উপরের কার্ল কমান্ডটি ব্যবহার করতে হবে, তবে এর পরে তাদের আর পঠনযোগ্য মোডে ফিরে যাওয়া উচিত নয়।


9
ওহে. আমার সিস্টেমে পর্যাপ্ত ফাঁকা জায়গা থাকা সত্ত্বেও আমি এই ত্রুটিটি পাচ্ছি। অন্যান্য সমস্যা রয়েছে যা এই সমস্যাটির প্রতিবেদন করতে পারে?
সঙ্কলপা টিমিলসিনা 23'19

আমার কাছে একই সমস্যা রয়েছে, যদিও আমার কাছে 82.43% ডিস্ক উপলব্ধ রয়েছে। আমি এটি কার্ল কমান্ড দিয়ে ঠিক করেছি তবে কিছু দিন পরে আমি একই হচ্ছি।
মনু

@ সঙ্কলপা টিমিলসিনা আপনি কি উত্তর পেয়েছেন, আমি একই সমস্যার মুখোমুখি আছি।
মালিক ফয়িক

72

ডিফল্টরূপে, ইলাস্টিকস্যাচ ইনস্টল করা কেবলমাত্র পঠন মোডে যায় যখন আপনার 5% এরও কম ডিস্কের স্থান থাকে। যদি আপনি এর মতো ত্রুটি দেখতে পান:

ইলাস্টিকসার্ক :: পরিবহন :: পরিবহন :: ত্রুটি :: নিষিদ্ধ: [403] {"ত্রুটি": {"মূল_কাজ": [{"প্রকার": "ক্লাস্টার_ব্লক_অসেপশন", "কারণ": "ব্লক করেছেন: [ফরবিডেন / 12 / সূচক পঠনযোগ্য / অনুমতি কেবল মুছে ফেলুন (এপিআই)]; "}]," প্রকার ":" ক্লাস্টার_ব্লক_অপত্তি "," কারণ ":" দ্বারা অবরুদ্ধ: [ফরবিডডেন / 12 / সূচি পঠনযোগ্য / অনুমতি মুছুন (এপিআই)]; " }, "স্থিতি": 403

অথবা /usr/local/var/log/elasticsearch.log এ আপনি একই রকম লগ দেখতে পারেন:

বন্যা পর্যায়ের ডিস্ক ওয়াটারমার্ক [95%] [nCxquc7PTxKvs6hLkfonvg] ছাড়িয়ে গেছে [nCxquc7] [/ usr / স্থানীয় / var / lib / ইলাস্টিক / নোড / 0] বিনামূল্যে: 15.3gb [৪.১%], এই নোডের সমস্ত সূচকগুলি পড়তে চিহ্নিত করা হবে -কেবল

তারপরে আপনি নিম্নলিখিত কমান্ডগুলি চালিয়ে এটি ঠিক করতে পারেন:

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}'

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

থেকে

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


আমি {"error":{"root_cause":[{"type":"index_not_found_exception","reason":"no such index [null] and no indices exist"আপনার আদেশ দিয়ে একটি পেয়েছি , কোন ধারণা?
সেরিল ডুচন-ডরিস

4
ধন্যবাদ! আমার ডিস্কটির স্থান খুব কম ছিল। আমি কিছু জায়গা খালি করার পরেও সমস্যাটি এখনও থেকেই গেল। এই আদেশটি আমার সমস্যার সমাধান!
ফ্রেড

এটি আধুনিক ইলাস্টিক অনুসন্ধান সংস্করণগুলির সঠিক সমাধান। তবে এটি নিয়ে কাজ হয়নি _all। আমাকে নিজেই প্রতিটি সূচীতে এটি প্রয়োগ করতে হয়েছিল।
রুবিক

@ রবিক আপনি কীভাবে "প্রতিটি সূচকে ম্যানুয়ালি প্রয়োগ করেন" দয়া করে তা উল্লেখ করতে পারেন? আমি ইলাস্টিকসার্কে নতুন এবং একই ইস্যুটির মুখোমুখি হয়েছি যেখানে _ সমস্ত কাজ করছে না।
রোব

@ নিশ্চিত কেবল _allসূচকের নামটি প্রতিস্থাপন করুন এবং প্রতিটি সূচকের জন্য অনুরোধটি পুনরাবৃত্তি করুন।
রুবিক

5

আপনার যন্ত্রটি ডিস্কের জায়গায় কম থাকলে সাধারণত এই ত্রুটিটি লক্ষ্য করা যায়। এই ত্রুটি বার্তাটি এড়ানোর জন্য পদক্ষেপগুলি অনুসরণ করা উচিত

  1. সূচীতে পঠনযোগ্য কেবল সূচক ব্লকটি পুনরায় সেট করা:

    $ curl -X PUT -H "Content-Type: application/json" http://127.0.0.1:9200/_all/_settings -d '{"index.blocks.read_only_allow_delete": null}'
    
    Response
    ${"acknowledged":true}
    
  2. কম ওয়াটারমার্ককে কমপক্ষে 50 গিগাবাইট বিনামূল্যে আপডেট করা, কমপক্ষে 20 গিগাবাইটের একটি উচ্চ ওয়াটারমার্ক এবং 10 গিগাবাইট বিনামূল্যে একটি বন্যার মঞ্চ ওয়াটারমার্ক এবং প্রতি মিনিটে ক্লাস্টার সম্পর্কিত তথ্য আপডেট করা

     Request
     $curl -X PUT "http://127.0.0.1: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", "cluster.info.update.interval": "1m"}}'
    
      Response
      ${
       "acknowledged" : true,
       "persistent" : { },
       "transient" : {
       "cluster" : {
       "routing" : {
       "allocation" : {
       "disk" : {
         "watermark" : {
           "low" : "50gb",
           "flood_stage" : "10gb",
           "high" : "20gb"
         }
       }
     }
    }, 
    "info" : {"update" : {"interval" : "1m"}}}}}
    

এই দুটি কমান্ড চালানোর পরে, আপনাকে অবশ্যই প্রথম কমান্ডটি আবার চালাতে হবে যাতে সূচকটি কেবল পঠনযোগ্য মোডে না চলে

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.