我们有一个 0.90 的集群,有两个 elasticsearch 节点。有一段时间,他们的状态经常变黄,然后又变回绿色,但现在它是红色的,似乎一直保持这种状态。健康是这样的:
{
"cluster_name" : "name",
"status" : "red",
"timed_out" : false,
"number_of_nodes" : 4,
"number_of_data_nodes" : 2,
"active_primary_shards" : 724,
"active_shards" : 1448,
"relocating_shards" : 0,
"initializing_shards" : 0,
"unassigned_shards" : 544
}
我用谷歌搜索了一下,发现我应该列出未分配的分片,但 _cat 似乎在 0.90 中不存在。有没有办法恢复绿色?两个节点当然可以互相 ping 通,所以我看不出它不能工作的原因。
在另一个帖子上找到了答案,这里是:
curl -XPOST 'localhost:9200/_cluster/reroute' -d '{ "commands": [{ "allocate": { "index": "my-index", "shard": 0, "node": "node_name" , "allow_primary": 1 } }] }'
对于需要重新分配的所有索引的每个分片,我都必须这样做,其中有 500 个。那太好了。总之,解决了。