通过Kibana的Dev Tools控制台执行运维命令,可以查看集群健康状态、节点负载、分片分配、索引信息等,用于日常巡检和故障排查。
前提条件
已创建阿里云ES实例,创建方法请参见创建阿里云Elasticsearch实例。
操作步骤
登录目标阿里云ES实例的Kibana控制台。
具体操作请参见登录Kibana控制台。以下所有命令均可在Kibana的Dev Tools控制台中执行。
在左侧导航栏,单击Dev Tools(开发工具)。
在Console中,执行以下命令查看集群的健康状态。
GET /_cluster/health正常情况下,返回如下结果。
{ "cluster_name" : "es-cn-45xxxxxxxxxxxxk1q", "status" : "green", "timed_out" : false, "number_of_nodes" : 2, "number_of_data_nodes" : 2, "active_primary_shards" : 18, "active_shards" : 36, "relocating_shards" : 0, "initializing_shards" : 0, "unassigned_shards" : 0, "delayed_unassigned_shards" : 0, "number_of_pending_tasks" : 0, "number_of_in_flight_fetch" : 0, "task_max_waiting_in_queue_millis" : 0, "active_shards_percent_as_number" : 100.0 }status表示集群的健康状态,取值为green、yellow或red。集群健康状态
状态
说明
red
不是所有的主要分片都可用。
表示该集群中存在不可用的主分片。可以理解为某个或者某几个索引存在主分片丢失的情况。
yellow
所有主要分片可用,但不是所有副本分片都可用。
表示该集群中某个或者某几个索引存在副本分片存在丢失的情况。
green
所有主要分片和副本分片都可用。
表示集群中所有的索引都很健康,不存在丢失的分片。
集群处于
yellow状态时,密码修改、集群升配等变更操作耗时会显著增加。建议先修复集群状态为green再进行变更。常见原因是索引副本数超过节点数减1,修复步骤如下:查找状态为
yellow的索引:curl -u <用户名>:<密码> http://<host>:9200/_cat/indices调整问题索引的副本数(设置为节点数减1):
curl -XPUT -u <用户名>:<密码> http://<host>:9200/<有问题的索引名称>/_settings -H 'Content-Type: application/json' -d '{"index":{"number_of_replicas":(<当前节点数-1>)}'说明实例重启或扩容后,需根据最新节点数量重新调整索引副本数。
集群命令
命令 | 说明 |
GET /_cat/health?v | 查看集群的健康状态。集群状态包括green、red、yellow,各状态的详细说明请参见上方操作步骤。 |
GET /_cluster/health?pretty=true | 查看集群的健康状态。
|
GET /_cluster/stats | 查看集群的系统信息,包括CPU、JVM等信息。 |
GET /_cluster/state | 查看集群的详细信息,包括节点、分片等信息。 |
GET /_cluster/pending_tasks | 查看集群中堆积的任务。 |
GET /_cluster/settings | 查看集群设置。 |
节点命令
命令 | 说明 |
GET /_cat/master?v | 查看集群中Master节点的信息。 |
GET /_cat/nodes?v | 查看集群中各个节点的当前状态,包括节点CPU使用率、HeapMemory使用率、负载情况等。 |
GET /_cat/nodeattrs?v | 查看单节点的自定义属性。 |
GET /_nodes/stats?pretty=true | 查看节点状态。 |
GET /_nodes/process | 查看节点的进程信息。 |
GET /_nodes/hot_threads | 查看高消耗的线程所执行的任务。 |
GET /_nodes/<nodeip>/jvm,process,os | 查看指定节点的JVM、进程和操作系统信息。 |
GET /_cat/plugins?v | 查看各节点的插件信息。 |
GET /_cat/thread_pool?v | 查看各节点的线程池统计信息,包括线程池的类型、活跃线程数、任务队列大小等。 |
分片命令
命令 | 说明 |
GET /_cat/shards?v | 查看集群中各分片的详细情况,包括索引名称、分片编号、是主分片还是副分片、分片的当前状态(对于分配失败的分片会有失败原因)、doc数量、磁盘占用情况等。也可以指定index查看分片信息( |
GET /_cat/allocation?v | 查看集群中每个节点的分片分配情况。 |
GET /_cat/recovery?v | 查看集群中每个分片的恢复过程。 |
Segments命令
GET /_cat/segments?v查看集群中各索引的segment信息,包括segment名称、所属shard、内存或磁盘占用大小、是否刷盘等。也可以指定index查看segment信息(GET _cat/segments/<index>?v)。
索引命令
命令 | 说明 |
GET /_cat/indices?v | 查看集群中所有索引的详细信息,包括索引的健康度、状态、分片数和副本数、包含的文档数等。也可以查看指定索引的信息( |
GET /_cat/aliases?v | 查看集群中所有aliases(索引别名)的信息,包括aliases对应的索引、路由配置等。 |
Mapping命令
命令 | 说明 |
GET /_mapping | 查看集群中所有索引的Mapping。 |
GET /<index>/_mapping | 查看指定索引的Mapping。 |
文档命令
命令 | 说明 |
GET /_cat/count?v | 查看集群中的文档数量。也可以指定index查看文档数量( |
GET /<index>/_doc/<id> | 查看文档中的数据。 |
快照命令
命令 | 说明 |
GET _snapshot/_all | 查看所有快照。 |
GET _snapshot/<snapshot_name>/_status | 查看指定快照的进度。 |