All skills
Skillintermediate

Cluster & Node API Reference

```bash # Quick health check es "_cluster/health" | jq '{status, number_of_nodes, active_shards, unassigned_shards}'

Claude Code Knowledge Pack7/10/2026

Overview

Cluster & Node API Reference

Cluster Health

# Quick health check
es "_cluster/health" | jq '{status, number_of_nodes, active_shards, unassigned_shards}'

# Per-index health
es "_cluster/health?level=indices" | jq '.indices | to_entries[] | select(.value.status != "green") | {index: .key, status: .value.status}'

Status meanings:

  • green: All primary and replica shards assigned
  • yellow: All primaries assigned, some replicas missing (common on single-node)
  • red: Some primary shards unassigned — data may be unavailable

Cluster Stats

es "_cluster/stats" | jq '{
  nodes: .nodes.count.total,
  indices: .indices.count,
  docs: .indices.docs.count,
  store_size: .indices.store.size_in_bytes,
  memory: .nodes.jvm.mem.heap_used_in_bytes
}'

Cluster Settings

# Get all settings (persistent + transient)
es "_cluster/settings?include_defaults=true&flat_settings=true"

# Update persistent setting
es "_cluster/settings" -XPUT -d '{
  "persistent": {
    "cluster.routing.allocation.enable": "all"
  }
}'

Node Stats

# All node stats
es "_nodes/stats" | jq '.nodes | to_entries[] | {name: .value.name, heap_pct: .value.jvm.mem.heap_used_percent, cpu: .value.os.cpu.percent, disk: .value.fs.total}'

# Specific metrics
es "_nodes/stats/jvm,os,fs"

# Hot threads (debugging slow nodes)
es "_nodes/hot_threads"

Node Info

es "_nodes" | jq '.nodes | to_entries[] | {name: .value.name, roles: .value.roles, version: .value.version, os: .value.os.pretty_name}'

Shard Allocation

# List shards with allocation
es "_cat/shards?v&s=store:desc&h=index,shard,prirep,state,store,node"

# Why a shard is unassigned
es "_cluster/allocation/explain" -XPOST -d '{
  "index": "my-index",
  "shard": 0,
  "primary": true
}'

# Reroute a shard manually
es "_cluster/reroute" -XPOST -d '{
  "commands": [
    {"allocate_replica": {"index": "my-index", "shard": 0, "node": "node-2"}}
  ]
}'

Pending Tasks

es "_cluster/pending_tasks"
es "_cat/pending_tasks?v"

Task Management

# List running tasks
es "_tasks?detailed=true&actions=*reindex*"

# Cancel a task
es "_tasks/node_id:task_id/_cancel" -XPOST

Cat APIs

Quick cluster overview commands (append ?v for headers, ?format=json for JSON):

es "_cat/health?v"                    # Cluster health one-liner
es "_cat/nodes?v&h=name,heap.percent,ram.percent,cpu,load_1m,disk.used_percent,node.role"
es "_cat/indices?v&s=store.size:desc" # Indices sorted by size
es "_cat/shards?v&s=store:desc"       # Shards sorted by size
es "_cat/segments?v"                  # Segment info
es "_cat/recovery?v&active_only"      # Active recoveries
es "_cat/thread_pool?v&h=node_name,name,active,queue,rejected"  # Thread pools
es "_cat/fielddata?v"                 # Fielddata memory usage