Cluster Health 提供了有关群集的大量信息,例如分配的分片数(活动)以及未分配和重定位的分片数。此外,它提供了群集中当前数量的节点和数据节点,这可以允许你轮询丢失的节点(例如,如果你希望它是 15,但它只显示 14,那么你缺少一个节点)。

对于了解 Elasticsearch 的人来说,已分配未分配的分片可以帮助他们追踪问题。

从 Cluster Health 检查的最常见字段是 status,它可以处于以下三种状态之一:

  • 红色
  • 黄色
  • 绿色

每种颜色都意味着一个 - 而且只有一个 - 非常简单:

  1. 红色表示你缺少至少一个主分片。
    • 缺少主分片意味着在大多数情况下,索引不能用于写入(索引)新数据。
      • 从技术上讲,你仍然可以索引该索引中可用的任何主分片,但实际上这意味着你不能,因为你通常不会控制哪个分片接收任何给定文档。
      • 仍然可以针对红色群集进行搜索,但这意味着如果你搜索的任何索引缺少分片,你将获得部分结果。
    • 在正常情况下,它只是意味着正在分配主分片(initializing_shards)。
    • 如果一个节点刚刚离开集群(例如,因为运行它的机器断电),那么暂时缺少一些主分片是有道理的。
      • 在此方案中,该主分片的任何副本分片都将被提升为主分片。
  2. 黄色表示所有主分片都处于活动状态,但至少缺少一个副本分片。
    • 如果一致性设置要求它影响索引,则缺少的副本仅影响索引。
      • 默认情况下,任何主副本只有一个副本,并且只有一个丢失的副本可能会发生索引。
    • 在正常情况下,它只是意味着正在分配副本分片(initializing_shards)。
    • 启用了副本的单节点群集最多**始终为黄色。如果尚未分配主分片,则它可以为红色。 **
      • 如果你只有一个节点,那么禁用副本是有意义的,因为你不期望任何副本。然后它可以是绿色的。
  3. 绿色表示所有分片都处于活动状态。
    • 绿色集群允许的唯一分片活动是 relocating_shards
    • 新的索引以及新的分片将导致群集从红色变为黄色变为绿色,因为每个分片都被分配(主要是第一个,使其变为黄色,然后是可能的副本,使其变为绿色)。
      • 在 Elasticsearch 5.x 及更高版本中,新索引不会使你的群集变为红色,除非它们需要太长时间才能分配。