项目中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