ELK5.4 修改分片数及分片分配方式
一、修改分片数
elasticsearch默认分片数为5,副本数为1.如果需要修改分片数有两种方式
1、修改索引settings
查看索引状态:curl -GET "http://localhost:9200/index/__settings"
修改索引状态信息:
curl -XPUT 'localhost:9200/index/_settings' -d '{ "index" : { "number_of_replicas" : 6, "number_of_replicas": 2 }}'
这种方式只能针对某个索引单独修改。如果需要所有索引统一修改,就需要修改模板信息
2、修改模板
#获取默认模板信息
curl -XGET http://localhost:9200/_template/logstash
#删除默认模板
curl -XDELETE http://localhost:9200/_template/logstash
#上传修改后的默认模板
curl -XPUT http://localhost:9200/_template/logstash -d '{ "template": "logstash-*", "settings": { "index": { "number_of_replicas": "2", "number_of_shards": "6", "refresh_interval": "5s" } }, "mappings": { "_default_": { "dynamic_templates": [ { "message_field": { "path_match": "message", "mapping": { "norms": false, "type": "text" }, "match_mapping_type": "string" } }, { "string_fields": { "mapping": { "norms": false, "type": "text", "fields": { "keyword": { "type": "keyword" } } }, "match_mapping_type": "string", "match": "*" } } ], "_all": { "norms": false, "enabled": true }, "properties": { "@timestamp": { "include_in_all": false, "type": "date" }, "geoip": { "dynamic": true, "properties": { "ip": { "type": "ip" }, "latitude": { "type": "half_float" }, "location": { "type": "geo_point" }, "longitude": { "type": "half_float" } } }, "@version": { "include_in_all": false, "type": "keyword" } } } }, "aliases": {} }'
二、分片分配
默认情况下shard分片是大致均衡的,但是primary 主分片分配不均衡(某个ES重启或者集群节点变动)
Shard Allocation Settingsedit
The following dynamic settings may be used to control shard allocation and recovery:
cluster.routing.allocation.enable
Enable or disable allocation for specific kinds of shards:
all
- (default) Allows shard allocation for all kinds of shards.primaries
- Allows shard allocation only for primary shards.new_primaries
- Allows shard allocation only for primary shards for new indices.none
- No shard allocations of any kind are allowed for any indices.
上面这个参数可以设定分片分配的方式。
PUT _cluster/settings{ "transient": { "cluster.routing.allocation.enable": primaries }}