前言:
在默认情况下,我们新建的索引,只有1个分片和1个副本,在生产环境中不利于数据安全。那有些索引创建之前没有指定分片和副本数量,创建完成后,怎么重新分配分片和副本数量呢?
索引创建完成后,是不支持增加索引分片的,只能增加分片副本。但在目前的官方文档中,提到了_splitAPI重新分割索引的方式,来重新分配分片和副本。下面开始讲解一下步骤:
一、停止数据写入,将索引设为只读:
PUT /nginx/_settings
{
"index.blocks.write":true
}
这样,logstash就不会写入数据了,可以看到logstash的日志中出现报错:
[2020-03-31T00:00:00,174][INFO ][logstash.outputs.elasticsearch][main] retrying failed action with response code: 403 ({
"type"=>"cluster_block_exception", "reason"=>"index [nginx] blocked by: [FORBIDDEN/8/index write (api)];"})
二、备份索引数据:
PUT /_snapshot/my_backup/nginx
{
"indices": "nginx"
}
三、使用_splitAPI创建索引
命令格式为:
POST /my_source_index/_split/my_target_index
{
"settings":