【Elasticsearch】_cluster/health 和 _cat/nodes 命令详解

1.集群健康状态(_cluster/health)

1.1 参数详解

GET _cluster/health

在这里插入图片描述

以下是 GET _cluster/health 返回参数的具体含义解析。

1.1.1 基础信息

参数
含义
补充说明
cluster_name集群名称示例中的集群名为 es-xxx
status集群健康状态green:所有主分片和副本分片正常;yellow:主分片正常,副本分片未全部分配;red:有主分片未分配
timed_out请求是否超时false 表示本次查询未超时

1.1.2 节点与分片状态

参数
含义
补充说明
number_of_nodes集群总节点数当前为 3 3 3,包括所有角色节点(数据/主/协调节点)
number_of_data_nodes数据节点数量当前为 3 3 3,仅处理数据的节点
active_primary_shards活跃的主分片数当前为 15 15 15,表示所有索引的主分片均已分配并可用
active_shards活跃的总分片数当前为 31 31 31(含主分片+副本分片),说明副本分片数为 31-15=16
active_shards_percent_as_number活跃分片百分比 100 % 100\% 100% 表示所有分片(主+副本)均正常

1.1.3 分片分配状态

参数
含义
补充说明
relocating_shards正在迁移的分片数 0 0 0 表示无分片在节点间迁移(通常因节点下线或平衡触发)
initializing_shards初始化中的分片数 0 0 0 表示无新分片在创建或恢复(否则可能因重启或索引新建)
unassigned_shards未分配的分片数 0 0 0 表示无分片因磁盘不足、分配规则等滞留未分配
delayed_unassigned_shards延迟未分配的分片数 0 0 0 表示无因 index.unassigned.node_left.delayed_timeout 设置而延迟分配的分片

1.1.4 集群任务与负载

参数
含义
补充说明
number_of_pending_tasks待处理集群级任务数 0 0 0 表示主节点无积压任务(如分片分配、模板更新)
number_of_in_flight_fetch正在进行的分片数据同步数 0 0 0 表示无节点间数据同步(主副分片同步)
task_max_waiting_in_queue_millis任务队列最长等待时间(毫秒) 0 0 0 表示无任务积压(若持续 > 0 > 0 >0 可能主节点过载)

1.2 健康状态分析示例

  • 绿色状态:所有分片(主+副本)均已分配,无迁移或初始化任务。
  • 潜在问题
    • active_shards_percent_as_number < 100 % < 100\% <100%,需检查 unassigned_shards 原因。
    • relocating_shards > 0 > 0 >0 时可能因节点下线触发再平衡,短暂影响性能。
    • pending_tasks 持续增加可能表明主节点处理能力不足。

1.3 关键监控建议

  • 重点关注statusunassigned_shardsrelocating_shards
  • 告警阈值
    • status 变为 yellow / red 立即告警。
    • unassigned_shards > 0 > 0 >0 持续 5 5 5 分钟需介入。
  • 扩展检查:若发现异常,可结合 GET _cat/shards?v 查看具体未分配分片的索引和节点。

在这里插入图片描述

2.节点各项指标(_cat/nodes)

GET _cat/nodes?v

在这里插入图片描述

以下是 GET _cat/nodes?v 命令返回的各列参数的含义详解。

2.1 参数详解

2.1.1 基础信息列

列名
含义
示例值解析
ip节点 IP 地址192.168.1.62 表示节点的网络地址
name节点名称节点唯一标识

2.1.2 资源使用率列

列名
含义
健康阈值
计算方式
heap.percentJVM 堆内存使用百分比 ≥ 75 % ≥75\% 75% 需关注已用堆内存 / 最大堆内存(Xmx)
ram.percent机器总内存使用率 ≥ 85 % ≥85\% 85% 需关注(总内存 - 可用内存) / 总内存
cpuCPU 使用率(瞬时值) ≥ 70 % ≥70\% 70% 持续需关注当前 CPU 时间片的占用百分比

2.1.3 系统负载列

列名
含义
健康解读
load_1m 1 1 1 分钟平均负载理想值 ≤ ≤ CPU 核数
load_5m 5 5 5 分钟平均负载持续高值表明系统压力
load_15m 15 15 15 分钟平均负载长期高负载需扩容

分析:示例中所有节点负载接近 0 0 0,说明集群空闲。若负载值为 4 4 4(且 CPU 为 8 8 8 核),则利用率约 50 % 50\% 50%

2.1.4 节点角色列

列名
含义
角色缩写解析
node.role节点角色组合dimr 是缩写。d:数据节点;i i n g e s t ingest ingest 节点;m:主节点候选;r:协调节点
master是否是当前主节点* 表示该节点是主节点(示例中 192.168.1.63 是主节点)

2.2 其他隐含重要信息

  • 节点角色组合规则
    • 纯数据节点:d
    • 主 + 数据节点:dimr
    • 专用主节点:m(不应有数据)
  • JVM 堆内存异常
    • 示例中 heap.percent 32 % − 47 % 32\%-47\% 32%47%之间,若持续接近 75 % 75\% 75% 需调整 JVM 参数或排查内存泄漏。
  • CPU 使用率为 0 的问题
    • 可能原因:
      • 集群空闲
      • 监控周期恰逢 CPU 空闲
    • 需结合 load_ 指标综合判断。

2.3 关键监控建议

  • 重点关注
    • ram.percentheap.percent 的差值(差值大说明堆外内存使用高)。
    • 主节点标识 * 的位置(确保主节点不过载)。
  • 异常场景
    # 危险信号示例:
    ip              heap.percent   ram.percent   cpu   load_15m    node.role    master    name
    192.168.1.64    95             98            100   10.0        dimr         *         node-1
    
    问题:堆内存将满、CPU 打满、系统过载,主节点可能崩溃。
  • 扩展命令
    // 查看更详细的资源统计
    GET _nodes/stats?filter_path=nodes.*.name,nodes.*.jvm.mem,nodes.*.os.cpu
    
    在这里插入图片描述
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

G皮T

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值