根据文档,我尝试按以下方式更新副本数
curl -XPUT 'localhost:9200/_settings' -d ' { "index" : { "number_of_replicas" : 4 } }'
这将正确更改现有节点的副本数。但是,当logstash在第二天创建新索引时,number_of_replicas设置为旧值。
有没有一种方法可以永久更改此设置的默认值,而无需更新elasticsearch.yml群集中的所有文件并重新启动服务?
elasticsearch.yml
我也尝试过
curl -XPUT 'localhost:9200/logstash-*/_settings' -d ' { "index" : { "number_of_replicas" : 4 } }'
无济于事。
是的,您可以使用索引模板。索引模板是为集群中创建的新索引设置默认设置(包括映射)的好方法。
索引模板 索引模板允许定义模板,这些模板将自动应用于创建的新索引。模板包括设置和映射,以及一个简单的模式模板,该模板控制是否将模板应用于所创建的索引。
索引模板
索引模板允许定义模板,这些模板将自动应用于创建的新索引。模板包括设置和映射,以及一个简单的模式模板,该模板控制是否将模板应用于所创建的索引。
http://www.elasticsearch.org/guide/zh- CN/elasticsearch/reference/current/indices- templates.html
例如:
curl -XPUT 'localhost:9200/_template/logstash_template' -d ' { "template" : "logstash-*", "settings" : {"number_of_replicas" : 4 } } '
这会将与名称“ logstash- *”匹配的所有新索引的默认副本数设置为4。请注意,这不会更改现有索引,只会更改新创建的索引。