2014-07-03 12 views
12

ho provato aggiornando il numero di repliche come segue, secondo la documentationAggiornamento dei number_of_replicas indice predefinita per nuovi indici

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

modifiche Questa correttamente il conteggio di replica per nodi esistenti. Tuttavia, quando logstash crea un nuovo indice il giorno seguente, number_of_replicas viene impostato sul vecchio valore.

C'è un modo per modificare in modo permanente il valore predefinito per questa impostazione senza aggiornare tutti i file elasticsearch.yml nel cluster e riavviare i servizi?

FWIW Ho anche provato

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

inutilmente.

risposta

24

Sì, è possibile utilizzare i modelli di indice. I modelli di indice sono un ottimo modo per impostare le impostazioni predefinite (inclusi i mapping) per i nuovi indici creati in un cluster.

Modelli Indice

modelli Indice permettono di definire modelli che verrà automaticamente applicata ai nuovi indici creati. I modelli includono entrambe le impostazioni e mappature e un modello di modello semplice che controlla se il modello verrà applicato all'indice creato.

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

Per esempio:

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

Questo imposterà il numero predefinito di repliche a 4 per tutti i nuovi indici che corrispondono al nome "logstash- *". Nota che questo non cambierà gli indici esistenti, solo quelli appena creati.

+0

(ES 5.2) Almeno non usare un PUT per questo; supponendo che ci fosse già un modello lì (ad esempio filebeat), lo avresti semplicemente sovrascritto. O utilizzare un POST (dove supportato), o prima ottenere l'intero modello come documento JSON, modificarlo, quindi inserirlo. –

Problemi correlati