curl -XPUT 'localhost:9200/_settings' -d '
{ "index" : { "number_of_replicas" : 4 } }'
这正确地更改了现有节点的副本计数。但是,当logstash在第二天创建新索引时,number_of_replicas将设置为旧值。
有没有办法永久更改此设置的默认值而不更新群集中的所有elasticsearch.yml
文件并重新启动服务?
FWIW我也试过
curl -XPUT 'localhost:9200/logstash-*/_settings' -d '
{ "index" : { "number_of_replicas" : 4 } }'
无济于事。
答案 0 :(得分:27)
是的,您可以使用索引模板。索引模板是为群集中创建的新索引设置默认设置(包括映射)的好方法。
索引模板
索引模板允许定义自动生成的模板 适用于创建的新指数。模板包括两个设置 和映射,以及一个简单的模式模板,控制是否 模板将应用于创建的索引。
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 }
} '
这将为所有与名称匹配的新索引设置默认的副本数量为4#logstash - *"。请注意,这不会更改现有索引,只会更改新创建的索引。