我运行多个独立的 Logstash 服务器,以便查看来自 Web 应用程序服务器的日志文件。
其中一个最近报告了由于未分配分片而导致的黄色集群状态。这种情况很常见,我通常通过删除最新索引并重新启动 Elasticsearch 来处理。
在这种情况下,它不起作用。当我删除索引(通过 API 或简单地从文件系统中删除文件)并重新启动 Elasticsearch 时,集群状态最初为绿色,但一旦创建第一个索引,它就会变成黄色,并且恰好有 5 个未分配的分片。
该服务器已运行数周,但完全没有负载。我还检查了 CIDR 中没有其他 Elasticsearch 服务器(反正它在 Amazon AWS 的 VPC 中)。
我已在日志中打开调试功能,但对我来说这毫无意义。没有提到无法分配分片。
答案1
最简单的解决方法是配置 elasticsearch 以使其不使用任何副本:
index.number_of_replicas: 0
如果 elasticsearch 未尝试将分片分发到其他节点,则它不会有未分配的分片。
我不确定为什么 elasticsearch 上的默认配置是
index.number_of_replicas: 1
第一次试用它的人必须在单个服务器上运行它,然后花费数天时间试图弄清楚为什么由于未分配的分片导致健康状况变黄。