ElasticSearch集群状态查看命令大全

转自:http://blog.youkuaiyun.com/pilihaotian/article/details/52460747


Elasticsearch中信息很多,同时ES也有很多信息查看命令,可以帮助开发者快速查询Elasticsearch的相关信息。

_cat

$ curl localhost:9200/_cat
=^.^=
/_cat/allocation
/_cat/shards
/_cat/shards/{index}
/_cat/master
/_cat/nodes
/_cat/indices
/_cat/indices/{index}
/_cat/segments
/_cat/segments/{index}
/_cat/count
/_cat/count/{index}
/_cat/recovery
/_cat/recovery/{index}
/_cat/health
/_cat/pending_tasks
/_cat/aliases
/_cat/aliases/{alias}
/_cat/thread_pool
/_cat/plugins
/_cat/fielddata
/_cat/fielddata/{fields}
/_cat/nodeattrs
/_cat/repositories
/_cat/snapshots/{repository}

verbose

每个命令都支持使用?v参数,来显示详细的信息:

$ curl localhost:9200/_cat/master?v
id                     host      ip        node
yBet3cYzQbC68FRzLZDmFg 127.0.0.1 127.0.0.1 lihao

help

每个命令都支持使用help参数,来输出可以显示的列:

$ curl localhost:9200/_cat/master?help
id   |   | node id
host | h | host name
ip   |   | ip address
node | n | node name

headers

通过h参数,可以指定输出的字段:

$ curl localhost:9200/_cat/master?v
id                     host      ip        node
yBet3cYzQbC68FRzLZDmFg  127.0.0.1 127.0.0.1 lihao

$ curl localhost:9200/_cat/master?h=ip,node
127.0.0.1 lihao

数字类型的格式化

很多的命令都支持返回可读性的大小数字,比如使用mb或者kb来表示。

$ curl localhost:9200/_cat/indices?v
health status index                   pri rep docs.count docs.deleted store.size pri.store.size
yellow open   aaa                       5   1          2            0      7.2kb          7.2kb
yellow open   logstash-eos-2016.09.01   5   1        297            0    202.3kb        202.3kb
yellow open   bank                      5   1       1001            1    451.6kb        451.6kb
yellow open   website                   5   1          2            0      7.8kb          7.8kb
yellow open   .kibana                   1   1          5            1     26.6kb         26.6kb
yellow open   logstash-eos-2016.09.02   5   1         11            0     33.9kb         33.9kb
yellow open   test-2016.09.01           5   1          1            0      3.9kb          3.9kb
yellow open   testst_index              5   1          0            0       795b           795b

<think>嗯,用户之前问过如何修复Elasticsearch在Kubernetes中的配置问题,现在他们想了解如何检查ES集群状态的k8s命令。我需要确保回答符合他们当前的上下文,可能是他们在维护ES集群,遇到了问题,需要监控状态。 首先,用户可能需要基本的检查命令,比如kubectl相关的操作,查看Pod状态。他们可能运行在k8s环境中,所以可能需要如何进入Pod执行ES的API请求。比如用kubectl exec进入Pod然后curl集群健康状态。 然后,考虑到用户之前处理过SSL和HTTPS的问题,应该提醒他们在curl命令中使用HTTPS和证书,比如--cacert或者-k选项,特别是如果他们启用了安全配置的话。可能需要提到不同环境下的情况,比如测试和生产环境中如何处理证书验证。 另外,用户可能需要检查ES的日志,所以kubectl logs命令也是必要的。他们可能需要查看是否有错误或警告信息,特别是之前提到的集群发现或SSL相关的问题。 还要考虑是否有其他相关资源需要检查,比如Service和Endpoint,确保网络通信正常。PVC的状态也很重要,确保存储没有问题,特别是ES的数据持久性。 最后,可能需要一些高级检查,比如通过REST API获取更详细的集群信息,节点状态,或者分片分配情况。这些可以帮助用户深入诊断问题。 需要确保回答结构清晰,分步骤说明,每个命令有示例和注释,让用户容易理解和执行。同时注意之前用户遇到的配置问题,提醒他们检查相关配置是否生效,比如SSL设置是否正确应用。</think>以下是检查 KubernetesElasticsearch 集群状态的常用命令及分步说明: --- ### 一、基础检查(Kubernetes 层面) #### 1. 查看 Pod 运行状态 ```bash kubectl get pods -n <命名空间> -l app=elasticsearch-master # 示例输出: # NAME READY STATUS RESTARTS AGE # elasticsearch-master-0 1/1 Running 0 2d ``` ✅ **关键点**: - `STATUS` 应为 **Running** - `RESTARTS` 数值异常增长可能表示有崩溃问题 #### 2. 检查容器日志 ```bash kubectl logs -n <命名空间> elasticsearch-master-0 -c elasticsearch ``` 🔍 **重点关注日志中的关键词**: - `Cluster health status changed from [RED] to [YELLOW]`(集群健康状态) - `master not discovered yet`(节点发现故障) - `SSL handshake failed`(证书或协议问题) --- ### 二、Elasticsearch 集群健康检查 #### 1. 进入 Pod 执行 API 请求 ```bash kubectl exec -it -n <命名空间> elasticsearch-master-0 -- curl -k -u elastic:密码 https://localhost:9200/_cluster/health?pretty ``` ✅ **预期输出**: ```json { "cluster_name" : "elasticsearch", "status" : "green", # ✅ 健康状态(green/yellow/red) "number_of_nodes" : 1, # ✅ 实际节点数 "active_shards" : 15, "relocating_shards" : 0, "unassigned_shards" : 0 # ❌ 若大于0需排查 } ``` #### 2. 检查节点列表 ```bash kubectl exec -it -n <命名空间> elasticsearch-master-0 -- curl -k -u elastic:密码 https://localhost:9200/_cat/nodes?v ``` ✅ **预期输出**: ```text ip heap.percent ram.percent cpu load_1m load_5m load_15m node.role master name 10.42.1.5 35 98 5 0.01 0.03 0.05 dilmrt * elasticsearch-master-0 ``` --- ### 三、进阶诊断命令 #### 1. 检查分片分配状态 ```bash kubectl exec -it -n <命名空间> elasticsearch-master-0 -- curl -k -u elastic:密码 https://localhost:9200/_cat/shards?v ``` 🔍 **关注列**: - `STATE` 应为 `STARTED`(异常值:`UNASSIGNED`) - `NODE` 显示分片所在节点 #### 2. 检查主节点选举 ```bash kubectl exec -it -n <命名空间> elasticsearch-master-0 -- curl -k -u elastic:密码 https://localhost:9200/_cat
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值