让我们从一个基本的集群健康检查开始。集群健康检查用于查看集群的运行情况。
我们将使用curl命令工具来访问Elasticsearch服务,你也可以使用任何其他HTTP/REST调试工具,例如POSTMAN。
可以使用_cat
API进行集群健康检查:
API格式:
GET /_cat/health?v
curl访问API:
curl -X GET "localhost:9200/_cat/health?v"
响应如下:
epoch timestamp cluster status node.total node.data shards pri relo init unassign pending_tasks max_task_wait_time active_shards_percent
1558609221 11:00:21 docker-cluster green 1 1 0 0 0 0 0 0 - 100.0%
可以看到名为“docker-cluster”(使用docker安装)的集群处于绿色状态。
集群的健康状态有红、黄、绿三个状态:
- 绿 - 一切正常(集群功能齐全)
- 黄 - 所有数据可用,但有些副本尚未分配(集群功能完全)
- 红 - 有些数据不可用(集群部分功能)
同样,从上面的响应中,可以看到有1个节点,0个分片,因为其中还没有数据。默认的Elasticsearch集群下,有时可能会有多个节点。
可以通过以下API,获取集群中的节点列表:
GET /_cat/nodes?v
curl访问API:
curl -X GET "localhost:9200/_cat/nodes?v"
响应如下:
[root@qikegu elasticsearch]# curl -X GET "localhost:9200/_cat/nodes?v"
ip heap.percent ram.percent cpu load_1m load_5m load_15m node.role master name
172.18.0.2 8 94 2 0.04 0.03 0.10 mdi * 86b8dd1cd964
这里,可以看到一个名为“86b8dd1cd964”的节点,是当前集群中的唯一一个节点。