群集运行状况
让我们从一个基本的健康检查开始,我们可以使用它来查看集群的运行情况。我们将使用curl来实现这一点,但您可以使用任何允许您进行HTTP/REST调用的工具。假设我们仍然在启动ElasticSearch并打开另一个命令shell窗口的同一个节点上。
为了检查集群的运行状况,我们将使用_cat API。您可以在Kibana的控制台中运行下面的命令,方法是单击“在控制台中查看”,或者使用curl,方法是单击下面的“复制为curl”链接并将其粘贴到终端中。
GET /_cat/health?v
完整API请求地址
curl -X GET "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”是启动的,状态为绿色。
当我们查询集群的状态,我们可以得到绿色,黄色和红色三种状态。
-
绿色-一切正常(集群功能齐全)
-
黄色-所有数据都可用,但某些副本尚未分配(群集完全正常工作)
-
红色-由于任何原因,某些数据不可用(群集部分正常工作)
注意:当集群为红色时,它将继续提供来自可用碎片的搜索请求,但您可能需要尽快修复它,因为存在未分配的分片。
同样,从上面的响应中,我们可以看到总共1个节点,并且我们有0个分片,因为我们在其中还没有数据。请注意,由于我们使用的是默认群集名称(ElasticSearch),并且由于ElasticSearch默认情况下使用单播网络发现在同一台计算机上查找其他节点,因此您可能会意外启动计算机上的多个节点,并让它们都加入一个集群。在这个场景中,您可能会在上面的响应中看到多个节点。
我们还可以得到集群中的节点列表,如下所示:
GET /_cat/nodes?v
响应:
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 dim * PB2SGZY
在这里,我们可以看到一个名为“pb2sgzy”的节点,它是当前集群中的单个节点。