集群健康
让我们开始一个基本的健康检查,我们可以看到我们的集群正在干什么。我们将使用crul来做这件事,但是你也可以使用别的可以调用HTTP/REST的工具。让我们假设我们依然在我们启动的Elasticsearch 节点上,并开启另外一个命令行窗口。
为了检查集群健康,我们将使用 _cat API 。记住之前我们的节点的HTTP端点在9200端口是可用的:
curl 'localhost:9200/_cat/health?v'
响应是:
epoch timestamp cluster status node.total node.data shards pri relo init unassign
1394735289 14:28:09 elasticsearch green 1 1 0 0 0 0 0
可以看到名为elasticsearch的集群已经启动,并且status的值为green。
不管何时我们去查询集群健康,我们可以得到green、yellow或red这几个值中的一个。Green意味着所有的事情都是正常的(集群功能完整),yellow意味着所有的数据是可用的,但是有一些副本没有被分配(集群功能完整),red状态表示有一些数据由于某些原因是不可用的。值得注意的是,如果一个集群是red状态,它也是有部分功能的(比如它将继续服务某些查询请求),但是你需要尽快修复它因为可能会丢失数据。
根据上面的响应,我们可以看到总共有1个节点,有0个分片,因为我们还没有数据。注意,因为我们使用了默认的集群名称,并且Elasticsearch 使用单播网络发现来查找相同机器上的其他节点,你可能意外地在你的电脑上启动了多个节点,这些节点都加入了一个单独的集群。在这种情况下,在响应里可以看到多个节点。
我们也可以得到集群的节点列表:
curl 'localhost:9200/_cat/nodes?v'
响应像下面这样:
curl 'localhost:9200/_cat/nodes?v'
host ip heap.percent ram.percent load node.role master name
mwubuntu1 127.0.1.1 8 4 0.00 d * New Goblin
这里,我们可以看到一个名为 "New Goblin"的节点,在当前集群是单节点。