2014-07-03 17 views
12

मैं इस प्रकार प्रतिकृतियां की संख्या को अद्यतन करने की कोशिश की है के लिए सेटिंग number_of_replicas अपडेट कर रहा है, documentationडिफ़ॉल्ट सूचकांक नया सूचकांक

curl -XPUT 'localhost:9200/_settings' -d ' 
{ "index" : { "number_of_replicas" : 4 } }' 

के अनुसार यह सही ढंग से मौजूदा नोड्स के लिए प्रतिकृति गिनती बदल जाता है। हालांकि, जब लॉगस्टैश अगले दिन एक नई अनुक्रमणिका बनाता है, तो number_of_replicas पुराने मान पर सेट होता है।

क्या क्लस्टर में सभी elasticsearch.yml फ़ाइलों को अपडेट किए बिना और सेवाओं को पुनरारंभ करने के बिना इस सेटिंग के लिए डिफ़ॉल्ट मान को स्थायी रूप से बदलने का कोई तरीका है?

FWIW मैं भी कोई लाभ नहीं हुआ

curl -XPUT 'localhost:9200/logstash-*/_settings' -d ' 
{ "index" : { "number_of_replicas" : 4 } }' 

कोशिश की है।

उत्तर

24

हां, आप इंडेक्स टेम्पलेट का उपयोग कर सकते हैं। इंडेक्स टेम्पलेट्स क्लस्टर में बनाए गए नए इंडेक्स के लिए डिफ़ॉल्ट सेटिंग्स (मैपिंग सहित) सेट करने का एक शानदार तरीका है।

सूचकांक टेम्पलेट्स

सूचकांक टेम्पलेट्स टेम्पलेट्स कि स्वचालित रूप से बनाए गए नए सूचकांक को लागू किया जाएगा परिभाषित करने के लिए अनुमति देते हैं। टेम्पलेट्स में और मैपिंग्स दोनों सेटिंग्स शामिल हैं, और एक सरल पैटर्न टेम्पलेट जो नियंत्रित करता है यदि टेम्पलेट बनाए गए इंडेक्स पर लागू किया जाएगा।

http://www.elasticsearch.org/guide/en/elasticsearch/reference/current/indices-templates.html

अपने उदाहरण के लिए:

curl -XPUT 'localhost:9200/_template/logstash_template' -d ' 
{ 
    "template" : "logstash-*", 
    "settings" : {"number_of_replicas" : 4 } 
} ' 

यह सभी नए अनुक्रमित कि नाम "logstash- *" से मेल के लिए 4 के लिए प्रतिकृतियां की डिफ़ॉल्ट संख्या सेट हो जाएगा। ध्यान दें कि यह मौजूदा इंडेक्स को नहीं बदलेगा, केवल नए बनाए गए हैं।

+0

(कम से कम ईएस 5.2) इसके लिए एक पुट का उपयोग न करें; यह मानते हुए कि वहां पहले से ही एक टेम्पलेट था (उदाहरण के लिए फ़ाइलबीट), आप इसे अभी ओवरराइट कर चुके होंगे। या तो एक POST (जहां समर्थित है) का उपयोग करें, या पहले पूरे टेम्पलेट को JSON दस्तावेज़ के रूप में प्राप्त करें, इसे संपादित करें, और उसके बाद इसे दबाएं। –