elasticsearch 在docker中将Elasticsearch集群从2.x升级到5.x时,索引为红色/悬空,elasticsearch,docker,elastic-stack,elasticsearch,Docker,Elastic Stack" /> elasticsearch 在docker中将Elasticsearch集群从2.x升级到5.x时,索引为红色/悬空,elasticsearch,docker,elastic-stack,elasticsearch,Docker,Elastic Stack" />

elasticsearch 在docker中将Elasticsearch集群从2.x升级到5.x时,索引为红色/悬空

elasticsearch 在docker中将Elasticsearch集群从2.x升级到5.x时,索引为红色/悬空,elasticsearch,docker,elastic-stack,elasticsearch,Docker,Elastic Stack,我管理一个小型ELK堆栈,它位于一个docker主机上,有一个3节点的elasticsearch集群、一个主节点、一个客户端节点和一个数据节点,每个节点都运行elasticsearch 2.4.x。这些节点中的每一个都安装了与elasticsearch数据目录相同的主机目录绑定,即使只有数据节点需要它 在测试5.x的升级路径时,我遇到了一个非常奇怪的问题。群集将返回,但不会初始化任何2.x创建的索引,引发错误: [o.e.g.DanglingIndicateState][elastic data

我管理一个小型ELK堆栈,它位于一个docker主机上,有一个3节点的elasticsearch集群、一个主节点、一个客户端节点和一个数据节点,每个节点都运行elasticsearch 2.4.x。这些节点中的每一个都安装了与elasticsearch数据目录相同的主机目录绑定,即使只有数据节点需要它

在测试5.x的升级路径时,我遇到了一个非常奇怪的问题。群集将返回,但不会初始化任何2.x创建的索引,引发错误:

[o.e.g.DanglingIndicateState][elastic data][[logstash-2017.02.01/pBco8d7dQAqmZoI37vUIOQ]]本地文件系统上存在悬挂索引,但不在群集元数据中,自动导入到群集状态


索引永远不会初始化并保持红色。堆栈将创建新的索引,如果我删除这些索引,系统将运行得非常好,但如果我在生产系统上这样做,数据丢失肯定是次优的。

事实证明,主节点和客户端节点一直在装载数据目录,这就是问题的原因。Elasticsearch 5.x强制数据目录的默认限制为1个节点,虽然主节点和客户端2.x节点没有积极管理数据,但它们影响了文件夹结构。通过首先从2.x集群上的master和client中移除绑定挂载并让其自行排序,然后升级到5.x,我能够获得一个具有所有绿色索引的干净升级。希望这能帮助其他遇到这个问题的人