2014-07-03 12 views
12

próbowałem aktualizując liczbę replik w następujący sposób, zgodnie z documentationAktualizacja number_of_replicas domyślne ustawienie dla nowych indeksów indeksów

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

to poprawnie zmienia liczbę replik dla istniejących węzłów. Jednak, gdy logstash tworzy nowy indeks następnego dnia, number_of_replicas jest ustawiona na starą wartość.

Czy istnieje sposób na trwałe zmienienie wartości domyślnej dla tego ustawienia bez aktualizacji wszystkich plików elasticsearch.yml w klastrze i ponowne uruchomienie usług?

FWIW Próbowałem zostały również

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

bezskutecznie.

Odpowiedz

24

Tak, możesz użyć szablonów indeksu. Szablony indeksu to świetny sposób na ustawienie domyślnych ustawień (w tym mapowań) dla nowych indeksów utworzonych w klastrze.

Szablony Indeks

Indeks szablony pozwalają definiować szablony, które zostaną automatycznie stosować do nowych indeksów tworzonych. Szablony obejmują zarówno ustawienia i odwzorowania, jak i prosty szablon wzorów, który kontroluje, czy szablon zostanie zastosowany do utworzonego indeksu.

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

Dla przykładu:

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

Spowoduje to ustawienie domyślnej liczby replik do 4 dla wszystkich nowych indeksów pasujących nazwę "logstash- *". Zauważ, że to nie zmieni istniejących indeksów, tylko te nowo utworzone.

+0

(przynajmniej ES 5.2) Z tą różnicą, że nie należy używać PUT; przy założeniu, że był już tam szablon (np. filebeat), wystarczy go nadpisać. Użyj POST (jeśli jest obsługiwany) lub najpierw pobierz cały szablon jako dokument JSON, edytuj go, a następnie WYŚLIJ. –

Powiązane problemy