千家信息网

ELK5.4 修改分片数及分片分配方式

发表于:2024-11-24 作者:千家信息网编辑
千家信息网最后更新 2024年11月24日,一、修改分片数elasticsearch默认分片数为5,副本数为1.如果需要修改分片数有两种方式1、修改索引settings查看索引状态:curl -GET "http://localhost:920
千家信息网最后更新 2024年11月24日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    }}


0