Elasticsearch集群健康

集群

一个运行中的Elasticsearch被称为一个节点,而集群就是由一个或者多个拥有相同cluster.name的配置节点组成,它们共同承担数据负载与压力。当集群减员或者增员时,集群将会重新平均分布所有的数据。

当一个节点被选择成为主节点时,它将会负责集群内的所有变更,包括增加删除索引、增加删除节点等。而主节点并不需要涉及到文档级别的变更和搜索等操作,所以当集群只拥有一个主节点的情况下,即使流量的增加它也不会成为瓶颈。 任何节点都可以成为主节点。我们的示例集群就只有一个节点,所以它同时也成为了主节点。

作为用户,我们可以将请求发送到 集群中的任何节点 ,包括主节点。 每个节点都知道任意文档所处的位置,并且能够将我们的请求直接转发到存储我们所需文档的节点。 无论我们将请求发送到哪个节点,它都能负责从各个包含我们所需文档的节点收集回数据,并将最终结果返回給客户端。

集群健康

ElasticSearch集群监控信息中包含了大量的统计信息,其中最为关键的应该是集群健康数据。我们可以通过如下命令来查看:

GET /_cluster/health

返回结果:

{
  "cluster_name" : "es-cn-m7r1y71jn000xwzks",
  "status" : "green",
  "timed_out" : false,
  "number_of_nodes" : 3,
  "number_of_data_nodes" : 3,
  "active_primary_shards" : 23,
  "active_shards" : 46,
  "relocating_shards" : 0,
  "initializing_shards" : 0,
  "unassigned_shards" : 0,
  "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" : 100.0
}

在这些返回数据中,我们最需要注意的时status字段的值,它直接反应了集群的最终状态。它分别有以下三种状态:

status值含义
green 所有的主分片和副本分片都正常运行
yellow 所有的主分片都正常运行,但不是所有的副本分片都正常运行。
red 有主分片没能正常运行。
作者:红雨
出处:https://www.cnblogs.com/52why
微信公众号: 红雨python
原文地址:https://www.cnblogs.com/52why/p/14416032.html