在 Elasticsearch 8.x 中,可以使用以下2种方法来检查集群的状态:
使用 Elasticsearch 提供的 REST API,可以通过向任意节点发送 HTTP 请求来检查集群的状态。常见的 API 端点是 _cluster/health。
Elasticsearch 提供了丰富的REST API,用于与集群进行交互。以下是一些常用的Elasticsearch REST API端点:
- 集群健康信息:
获取集群的健康状况:GET /_cluster/health
获取集群的详细信息:GET /_cluster/state
- 节点信息:
获取节点信息:GET /_cat/nodes
- X-Pack 安全性操作(如果启用了X-Pack):
用户认证:GET /_xpack/security/_authenticate
角色和权限:GET /_xpack/security/role/
用户管理:GET /_xpack/security/user/
- 索引操作:
创建索引:PUT /index_name
删除索引:DELETE /index_name
- 文档操作:
索引文档:POST /index_name/_doc
获取文档:GET /index_name/_doc/document_id
更新文档:POST /index_name/_update/document_id
删除文档:DELETE /index_name/_doc/document_id
- 搜索:
搜索文档:POST /index_name/_search
使用DSL进行搜索:POST /index_name/_search(提供查询DSL)
- Mappings和Settings:
获取索引的映射:GET /index_name/_mapping
获取索引的设置:GET /index_name/_settings
例如,可以使用 curl 命令发送 HTTP GET 请求来查询集群健康状态:
curl -X GET "http://localhost:9200/_cluster/health"
注意:请将localhost:9200替换为你的Elasticsearch集群的实际主机和端口
上述命令将返回有关集群健康状况的信息,包括集群的健康状态、节点数、活动的分片数等。
注意,如果Elasticsearch集群启用了X-Pack安全性功能,需要确保上述的curl命令包括正确的身份验证信息,例如用户名和密码。
例如,我的Elasticsearch集群启用了X-Pack安全性功能,执行上述命令时会报错:curl: (52) Empty reply from server,见下图:
这时候,命令里面需要加上用户名、密码、和http证书的路径:
curl --cacert config/certs/http_ca.crt -u user:passwd -XGET 'https://localhost:9200/_cat/health?v&pretty'
注意:请将上述命令中的user和passwd替换为你的用户名和密码,localhost:9200替换为你的Elasticsearch集群的实际主机和端口,并保证证书路径无误
此时,执行命令就会输出集群的状态信息,如下:
其中,集群状态为green,表示集群正常。
如果安装了 Kibana,可以使用 Kibana 控制台来查看集群的状态。在 Kibana 的控制台中,执行以下请求:
GET /_cluster/health
查询节点状态同理, 将API端口替换为_cat/nodes即可。
结果说明:
ip:节点的 IP 地址。
heapPercent:堆内存的使用百分比。
ramPercent:系统 RAM 的使用百分比。
cpu:CPU 使用百分比。
load1、load5、load15:系统负载的1分钟、5分钟和15分钟的平均值。
nodeRole:节点的角色,例如 d 表示数据节点,m 表示主节点。
master:如果是主节点,显示 *,表示当前的主节点。