探索集群

节点启动运行后,下一步要了解如何与它进行通信。幸运的是 Elasticsearch 提供非常全面且强大的REST API用于与集群交互.例如以下操作都可以通过这套API完成:

  • 检查集群,节点和索引的运行情况,状态及统计数据
  • 管理你的集群,节点,索引数据和元数据
  • 对索引执行CRUD操作或搜索操作
  • 执行高级搜索操作,例如分页,排序,过滤,脚本,聚合以及许多其他操作

集群健康

让我们从基本的健康检查开始,通过它查看集群的运行情况. 我们将使用curl来执行此操作,但是您可以使用支持进行HTTP/REST调用的任何工具.假设Elasticsearch仍在运行,并打开了另一个命令窗口

为了检查集群健康,会用到 _catAPI

1
2
3
4
GET /_catt/health?v

epoch timestamp cluster status node.total node.data shards pri relo init unassign pending_tasks max_task_wait_time active_shards_percent
1614043898 09:31:38 elasticsearch green 1 1 0 0 0 0 0 0 - 100.0%

可以看到elasticsearch集群处于绿色状态

每当我们查看集群运行状况时,我们得到绿色,黄色或红色的结果

  • 绿色: 一切都很好(集群功能齐全)
  • 黄色: 所有数据均可用,但某些副本尚未分配(集群功能齐全)
  • 红色: 由于某些原因,某些数据不可用(集群部分起作用)

注意:当群集为红色时,集群将继续通过可用分片提供搜索请求,但是由于存在未分配的分片,应该尽快进行修复

从以上响应中可以看出,共有1个节点,由于其中没有数据,所以有0个分片. 请注意,由于我们使用的是默认群集名称(elasticsearch),并且由于Elasticsearch默认使用单播网络发现来查找同一台计算机上的其他节点,因此您可能会意外地在计算机上启动多个节点并让它们运行全部加入一个集群。在这种情况下,您可能会在响应数据中看到多个节点。

我们还可以按如下方式获取集群中节点的列表:

1
2
3
4
GET /_cat/nodes?v

ip heap.percent ram.percent cpu load_1m load_5m load_15m node.role master name
127.0.0.1 24 100 9 3.52 mdi * 1tvk4R8

可以看到,现在集群中仅有一个节点

列出所有索引

1
GET /_cat/indices?v

创建一个索引

1
2
PUT /customer?pretty
GET /_cat/indices?v

第一个命令通过PUT方法创建一个名为customer的索引.

第二个命令的结果中显示,现在我们有一个叫做customer的索引,它有5个主分片和一个备份(默认情况).其中包含0个document.

这里customer索引当前为标记为yellow的健康状态.yellow表示尚未分配某些副本. 这个索引之所以发生这种情况,是因为Elasticsearch默认情况会为索引创建一个副本.由于我们当前仅有一个节点在运行,因此直到另一节点加入集群后,才能为索引分配一个副本(高可用).一旦副本被分配,该索引的健康状态将变为green.

文章链接 https://fangzongzhou.github.io/2021/02/23/计算机/技术文档/Elasticsearch/开始/探索集群/