要查看當前正在運行的 Elasticsearch 集群信息,可以通過以下幾種方法:
1. 使用 _cluster/health
API
_cluster/health
API 返回集群的健康狀態、節點數量、分片狀態等信息。可以用 curl
命令直接訪問:
curl -X GET "http://localhost:9200/_cluster/health?pretty"
或者,如果 Elasticsearch 運行在特定的 IP 地址和端口,可以替換 localhost
和 9200
為相應的地址和端口,例如:
curl -X GET "http://localhost:9200/_cluster/health?pretty"
返回結果類似于:
{"cluster_name" : "elasticsearch","status" : "green","timed_out" : false,"number_of_nodes" : 3,"number_of_data_nodes" : 3,"active_primary_shards" : 10,"active_shards" : 20,"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
}
主要字段說明:
cluster_name
: 集群名稱status
: 集群狀態(green
、yellow
、red
)number_of_nodes
: 集群中的節點數量number_of_data_nodes
: 數據節點數量active_primary_shards
: 活躍的主分片數量active_shards
: 活躍的所有分片數量unassigned_shards
: 未分配的分片數量
2. 使用 _cat/nodes
API
_cat/nodes
API 提供了關于集群節點的詳細信息。你可以查看節點的資源使用情況、運行的版本等信息:
curl -X GET "http://localhost:9200/_cat/nodes?v&pretty"
這將返回類似于以下的輸出:
ip heap.percent ram.percent cpu load_1m load_5m load_15m node.role master name
172.16.10.11 25 92 7 0.12 0.10 0.09 cdm * node-1
172.16.10.12 20 88 4 0.08 0.09 0.09 cdm - node-2
172.16.10.13 15 91 6 0.09 0.08 0.09 cdm - node-3
字段說明:
ip
: 節點的 IP 地址heap.percent
: JVM 堆內存使用百分比ram.percent
: RAM 使用百分比cpu
: 當前 CPU 使用率load_1m
: 過去 1 分鐘的系統負載node.role
: 節點的角色(如c
為協調節點,d
為數據節點,m
為主節點等)master
: 是否為主節點(*
表示主節點)
3. 使用 _cat/health
API
_cat/health
API 提供集群健康的簡短視圖:
curl -X GET "http://localhost:9200/_cat/health?v&pretty"
返回類似于:
cluster name status node.total node.data shards prirep unassigned.primary unassigned.relocating
elasticsearch green 3 3 10 p 0 0
主要字段說明:
cluster name
: 集群名稱status
: 集群狀態(green
、yellow
、red
)node.total
: 總節點數量node.data
: 數據節點數量shards
: 分片數prirep
: 主/副分片標識(p
為主分片,r
為副分片)unassigned.primary
: 未分配的主分片數量unassigned.relocating
: 正在遷移的分片數量
4. 使用 /_nodes
API 獲取詳細的節點信息
如果你需要獲取更詳細的節點信息,如操作系統、JVM、硬件等資源使用情況,可以使用 _nodes
API:
curl -X GET "http://localhost:9200/_nodes?pretty"
返回的信息非常詳細,涵蓋了節點的所有配置信息、硬件信息、JVM 設置等。
5. 使用 Kibana(如果已安裝 Kibana)
如果你有 Kibana 部署在集群中,可以通過 Kibana 的 Stack Monitoring 監控界面查看集群的狀態、節點、索引等信息。只需登錄 Kibana 控制臺,進入 Management > Stack Monitoring,即可看到集群的概況。
小結
你可以通過 curl
調用 Elasticsearch 的各種 _cat 和 _cluster API,查看集群、節點和健康狀態等信息,或者使用 Kibana 的 Stack Monitoring 界面來可視化這些信息。常用的 API 包括:
_cluster/health
_cat/nodes
_cat/health
_nodes