Cluster Health(集群健康)

集群健康

让我们从基本的健康检查开始,我们可以用它来看看我们的集群在做什么。我们将使用 curl 来做这件事情,当然您也可以使用任何允许您进行 HTTP/REST 调用的工具。假设我们在同一节点上启动了 Elasticsearch 并且打开了另一个命令 shell 窗口。

为了检查集群健康,我们将使用 _cat API。您可以在 Kibana’s Console 通过点击 “VIEW IN CONSOLE” 或者通过点击 “COPY AS CURL” 链接然后粘贴到终端中使用 curl 中运行命令 : 

curl -XGET 'localhost:9200/_cat/health?v&pretty'

响应如下 : 

epoch      timestamp cluster       status node.total node.data shards pri relo init unassign pending_tasks max_task_wait_time active_shards_percent
1475247709 17:01:49  elasticsearch green           1         1      0   0    0    0        0             0                  -                100.0%

我们可以看到我们名为 “elasticsearch” 的集群与 greenstatus

无论何时我们请求集群健康,我们可以获得 greenyellow,或者 redstatusGreen 表示一切正常(集群功能齐全), yellow 表示所有数据可用,但是有些副本尚未分配(集群功能齐全),red 意味着由于某些原因有些数据不可用。注意,集群是 red,它仍然具有部分功能(例如,它将继续从可用的分片中服务搜索请求),但是您可能需要尽快去修复它,因为您已经丢失数据了。

另外,从上面的响应中,我们可以看到共计 1 个 node(节点)和 0 个 shard(分片),因为我们还没有放入数据的。注意,因为我们使用的是默认的集群名称(elasticsearch),并且 Elasticsearch 默认情况下使用 unicast network(单播网络)来发现同一机器上的其它节点。有可能您不小心在您的电脑上启动了多个节点,然后它们全部加入到了单个集群。在这种情况下,你会在上面的响应中看到不止 1 个 node(节点)。

我们也可以获取我们集群的节点列表,如下所示 : 

curl -XGET 'localhost:9200/_cat/nodes?v&pretty'

响应如下 : 

ip        heap.percent ram.percent cpu load_1m load_5m load_15m node.role master name
127.0.0.1           10           5   5    4.46                        mdi      *      PB2SGZY

在这里,我们可以到我名为 “I8hydUG” 的节点名,这是目前在我们集群中的单个节点。