关于ELK:ESElasticsearch集群常见问题Unassigned

12次阅读

共计 2051 个字符,预计需要花费 6 分钟才能阅读完成。

问题一、索引呈现 Unassigned

问题如图

问题呈现起因:因为该索引的主分片的正本未调配胜利导致。(根本原因应该是内存缓和)
解决形式:
1. 确定有问题的索引列表(通过 kibana 查看:Kibana 提供了 Console UI 来通过 REST API 与 Elasticsearch 交互,Console 位于 Kibana 的 Dev Tools 栏下。)

# 查问索引列表及状态
 GET  /_cat/shards?v&h=index,shard,prirep,state,unassigned.reason
 
 #查问后果如下
index shard prirep   state unassigned.reason 
gaczrk 4 p      STARTED                      
gaczrk 4 r      UNASSIGNED CLUSTER_RECOVERED 
gaczrk 2 p      STARTED                      
gaczrk 2 r      UNASSIGNED CLUSTER_RECOVERED 
gaczrk 1     p      STARTED
#起因
INDEX_CREATED:  因为创立索引的 API 导致未调配。CLUSTER_RECOVERED:  因为齐全集群复原导致未调配。INDEX_REOPENED:  因为关上 open 或敞开 close 一个索引导致未调配。DANGLING_INDEX_IMPORTED:  因为导入 dangling 索引的后果导致未调配。NEW_INDEX_RESTORED:  因为复原到新索引导致未调配。EXISTING_INDEX_RESTORED:  因为复原到已敞开的索引导致未调配。REPLICA_ADDED:  因为显式增加正本分片导致未调配。ALLOCATION_FAILED:  因为分片调配失败导致未调配。NODE_LEFT:  因为承载该分片的节点来到集群导致未调配。REINITIALIZED:  因为当分片从开始挪动到初始化时导致未调配(例如,应用影子 shadow 正本分片)。REROUTE_CANCELLED:  作为显式勾销从新路由命令的后果勾销调配。REALLOCATED_REPLICA:  确定更好的正本地位被标定应用,导致现有的正本调配被勾销,呈现未调配。# 2. 查问单个索引配置信息
GET /driver-2021.03.03/_settings
# 后果如下
{
 "driver-2021.03.04" : {
   "settings" : {
     "index" : {
       "refresh_interval" : "5s",
       "number_of_shards" : "1",
       "provided_name" : "driver-2021.03.04",
       "creation_date" : "1614729630195",
       "number_of_replicas" : "1",
       "uuid" : "vUOn0P-9TkKCojmsEEjCdg",
       "version" : {"created" : "7060199"}
     }
   }
 }
}
#3. 查问单个索引分片信息
GET /driver-2021.03.04/_search_shards
#后果如下:{
 "nodes" : {
   "qKQnEdF6TMePf9GLiH-4Ng" : {
     "name" : "es-node2",
     "ephemeral_id" : "ksU4VNkhR4iMI-mPHOLu0Q",
     "transport_address" : "","attributes": {"ml.machine_memory":"33531363328","xpack.installed":"true","ml.max_open_jobs":"20"}
   }
 },
 "indices" : {"driver-2021.03.04" : {}
 },
 "shards" : [
   [
     {
       "state" : "STARTED",
       "primary" : true,
       "node" : "qKQnEdF6TMePf9GLiH-4Ng",
       "relocating_node" : null,
       "shard" : 0,
       "index" : "driver-2021.03.04",
       "allocation_id" : {"id" : "q3luk6zmSw29aO16ZplWXw"}
     }
   ]
 ]
}
## 联合 2,3 剖析:##  number_of_shards(每个索引的主分片数)1
##  number_of_replicas(每个主分片的正本数)1
## 分片所占节点数 = 正本数 +1
理论节点数就只有一个,所以是索引的正本未调配

解决形式:重新分配正本数
即. 重置正本数

#1. 先将该索引的正本数设为 0
PUT /driver-2021.03.04/_settings
{"number_of_replicas": 0}
#2. 再从新设置正本数
PUT /driver-2021.03.04/_settings
{"number_of_replicas": 1}

参考文档:
官网文档:索引设置
Elasticsearch 学习之集群常见情况解决(干货)
Elasticsearch 集群 UNASSIGNED shareds 问题 修复
elasticsearch 查问某个索引分片信息
Elasticsearch 7.X : 设置索引正本数量和分片数量

正文完
 0