项目中ElasticSearch service 突然出现yellow 的status, run 下面的请求出现
curl -XGET http://elasticseach.com:9200/_cluster/health?pretty=true
{ "cluster_name" : "882569572669:b2rel-elasticlog-an", "status" : "yellow", "timed_out" : false, "number_of_nodes" : 8, "number_of_data_nodes" : 5, "active_primary_shards" : 41, "active_shards" : 81, "relocating_shards" : 0, "initializing_shards" : 0, "unassigned_shards" : 1, "delayed_unassigned_shards" : 0, "number_of_pending_tasks" : 0, "number_of_in_flight_fetch" : 0, "task_max_waiting_in_queue_millis" : 0, "active_shards_percent_as_number" : 98.78048780487805 }
发现出现unsigned_shards 一个也就是说有一个index 的数据出现了unsigned shard ,可以看出active shards 是41 但是active shards 只有81, 估计是有一个replica
shard 没有assgin , 于是我们先query 所有的shard, 将他导入到一file 中
curl -XGET http://elasticseach.com:9200/_cat/shards
ce-index-access-v1-1498089600 4 p STARTED 0 130b x.x.x.x zH3odAo ce-index-access-v1-1498089600 4 r STARTED 0 130b x.x.x.x EcdSqza ce-index-access-v1-1498089600 1 r STARTED 0 130b x.x.x.x kSd2tX3 ce-index-access-v1-1498089600 1 p STARTED 0 130b x.x.x.x EcdSqza ce-index-access-v1-1498089600 3 p STARTED 0 130b x.x.x.x zH3odAo ce-index-access-v1-1498089600 3 r STARTED 0 130b x.x.x.x rPgpgEs ce-index-access-v1-1498089600 2 r STARTED 63322 2.8mb x.x.x.x kSd2tX3 ce-index-access-v1-1498089600 2 p STARTED 63322 2.8mb x.x.x.x rPgpgEs ce-index-access-v1-1498089600 0 r STARTED 0 130b x.x.x.x 7nvv7Ms ce-index-access-v1-1498089600 0 p STARTED 0 130b x.x.x.x EcdSqza ce-index-misc-v1-1498089600-h 4 p STARTED 1983541 195.7mb x.x.x.x zH3odAo ce-index-misc-v1-1498089600-h 4 r UNASSIGNED ce-index-misc-v1-1498089600-h 1 r STARTED 1985884 197.5mb x.x.x.x kSd2tX3 ce-index-misc-v1-1498089600-h 1 p STARTED 1985884 197.2mb x.x.x.x EcdSqza ce-index-misc-v1-1498089600-h 3 p STARTED 2166335 210.2mb x.x.x.x zH3odAo ce-index-misc-v1-1498089600-h 3 r STARTED 2166335 210.2mb x.x.x.x 7nvv7Ms ce-index-misc-v1-1498089600-h 2 r STARTED 2427927 239.6mb x.x.x.x 7nvv7Ms
可以清楚的看到 ce-index-misc-v1-1498089600-h 的第4个shard 的replica unassigned
所有我们要重新reassign 这个index 这样就可以了
curl -XGET http://search-b2rel-elasticlog-an-z4zg5bfuy4d3fzmdzhsoskww6y.ap-northeast-1.es.amazonaws.com/_cluster/reroute -d '{"commands":[{"allocate": {"index": "ce-index-misc-v1-1498089600-h","shard": 4,"node": "7nvv7Ms","allow_primary" : true}}]}
就是将这个index 重新reassign 到 7nvv7Ms
