工具 & 效率13 分钟阅读
Elasticsearch 运维命令 100 条
Elasticsearch 是分布式搜索与分析引擎。日常运维不仅要关注索引和查询,还要检查集群状态、节点、分片分配、磁盘水位、JVM、线程池、任务、索引生命周期和快照恢复。
2026年8月19日阅读—点赞—收藏—
dba100elasticsearch墨力计划
在知识库中专注阅读,并随时返回相关工具与课程
Elasticsearch 是分布式搜索与分析引擎。日常运维不仅要关注索引和查询,还要检查集群状态、节点、分片分配、磁盘水位、JVM、线程池、任务、索引生命周期和快照恢复。
Elasticsearch 是分布式搜索与分析引擎。日常运维不仅要关注索引和查询,还要检查集群状态、节点、分片分配、磁盘水位、JVM、线程池、任务、索引生命周期和快照恢复。
下面整理 100 条常用 REST API 与系统命令。REST 示例可直接在 Kibana Dev Tools 中执行;使用 curl 时请根据实际环境补充 HTTPS、认证和证书参数。不同版本及许可证下的 API 能力可能不同,生产执行删除索引、重路由、分片排除、快照恢复和安全配置前应确认影响范围。
1curl -sS --cacert /path/to/http_ca.crt \2 -u elastic:'Replace_With_Password' \3 https://localhost:9200/1GET /1GET /_cluster/health1GET /_cat/health?v1GET /_cluster/stats1GET /_cat/master?v1GET /_cat/nodes?v&h=name,ip,node.role,master,cpu,heap.percent,ram.percent,disk.avail1GET /_nodes1GET /_nodes/stats1GET /_cat/plugins?v1GET /_cat/indices?v&s=store.size:desc1PUT /orders-v12{3 "settings": {4 "number_of_shards": 3,5 "number_of_replicas": 16 }7}1GET /orders-v1/_settings1PUT /orders-v1/_settings2{3 "index.number_of_replicas": 24}1GET /orders-v1/_mapping1PUT /orders-v1/_mapping2{3 "properties": {4 "status": { "type": "keyword" },5 "order_time": { "type": "date" }6 }7}1GET /_cat/aliases?v1POST /_aliases2{3 "actions": [4 { "remove": { "index": "orders-v1", "alias": "orders" } },5 { "add": { "index": "orders-v2", "alias": "orders" } }6 ]7}1POST /orders-v1/_close2POST /orders-v1/_open1DELETE /orders-v1删除前确认已完成快照并避免使用宽泛通配符。
1GET /_index_template1PUT /_component_template/common-mappings2{3 "template": {4 "mappings": {5 "properties": {6 "@timestamp": { "type": "date" }7 }8 }9 }10}1PUT /_index_template/orders-template2{3 "index_patterns": ["orders-*"],4 "composed_of": ["common-mappings"],5 "template": {6 "settings": { "number_of_replicas": 1 }7 }8}1POST /_index_template/_simulate_index/orders-2026.071PUT /orders/_doc/100012{3 "customer_id": 2001,4 "amount": 99.0,5 "status": "PAID",6 "@timestamp": "2026-07-27T08:00:00Z"7}1POST /_bulk2{"index":{"_index":"orders","_id":"10002"}}3{"customer_id":2002,"amount":199.0,"status":"NEW"}4{"index":{"_index":"orders","_id":"10003"}}5{"customer_id":2003,"amount":299.0,"status":"NEW"}NDJSON 的最后一行必须保留换行。
1GET /orders/_doc/100011POST /orders/_update/100012{3 "doc": { "status": "REFUNDED" }4}1DELETE /orders/_doc/100011GET /orders/_search2{3 "query": {4 "term": { "status": "PAID" }5 }6}1GET /orders/_count2{3 "query": { "match_all": {} }4}1GET /orders/_validate/query?explain=true2{3 "query": {4 "match": { "description": "database" }5 }6}1GET /orders/_explain/100012{3 "query": {4 "term": { "status": "PAID" }5 }6}1POST /_analyze2{3 "analyzer": "standard",4 "text": "Elasticsearch database operations"5}1GET /orders/_search2{3 "profile": true,4 "query": {5 "term": { "status": "PAID" }6 }7}Profile 开销较高,不要对生产高频查询长期启用。
1POST /_msearch2{"index":"orders"}3{"query":{"term":{"status":"PAID"}}}4{"index":"orders"}5{"size":0,"aggs":{"avg_amount":{"avg":{"field":"amount"}}}}1GET /orders/_field_caps?fields=*1GET /orders/_termvectors/100012{3 "fields": ["description"],4 "term_statistics": true5}1POST /orders/_async_search?wait_for_completion_timeout=1s2{3 "query": { "match_all": {} }4}1GET /_async_search/status/<async_search_id>1GET /_cat/shards?v&s=state,index,shard1GET /_cat/allocation?v1GET /_cluster/allocation/explain2{3 "index": "orders-v1",4 "shard": 0,5 "primary": false6}1GET /_cat/recovery?v&active_only=true1GET /orders-v1/_recovery?human1GET /_cluster/settings?include_defaults=true&flat_settings=true1POST /_cluster/reroute?retry_failed=true应先通过 Allocation Explain 排除磁盘、水位、过滤规则或副本损坏等根因。
1PUT /_cluster/settings2{3 "persistent": {4 "cluster.routing.allocation.exclude._name": "data-node-03"5 }6}1PUT /_cluster/settings2{3 "persistent": {4 "cluster.routing.allocation.exclude._name": null5 }6}1PUT /_cluster/settings2{3 "persistent": {4 "cluster.routing.allocation.enable": "none"5 }6}维护结束后应改回 all,不要长期关闭。
1GET /_nodes/stats/jvm?human1GET /_nodes/hot_threads?threads=101GET /_cat/thread_pool?v&h=node_name,name,active,queue,rejected,completed1GET /_cluster/pending_tasks1GET /_tasks?detailed=true&actions=*1POST /_tasks/<task_id>/_cancel1GET /_nodes/stats/breaker1GET /_cat/fielddata?v&bytes=mb1GET /_cat/segments?v1POST /orders/_cache/clear清理可能导致短时性能抖动,只应在明确诊断场景使用。
1GET /orders/_stats?human1POST /orders/_refresh1POST /orders/_flush1POST /orders-archive/_forcemerge?max_num_segments=1仅用于不再写入的索引,并避开业务高峰。
1PUT /orders-archive/_settings2{3 "index.blocks.write": true4}1PUT /*/_settings2{3 "index.blocks.read_only_allow_delete": null4}必须先释放磁盘空间并处理水位根因。
1POST /_reindex?wait_for_completion=false2{3 "source": { "index": "orders-v1" },4 "dest": { "index": "orders-v2" }5}1POST /orders/_delete_by_query?wait_for_completion=false2{3 "query": {4 "range": {5 "@timestamp": { "lt": "now-365d" }6 }7 }8}1POST /orders/_update_by_query?wait_for_completion=false2{3 "script": {4 "source": "ctx._source.status = params.s",5 "params": { "s": "ARCHIVED" }6 },7 "query": { "term": { "status": "CLOSED" } }8}1POST /orders/_search?scroll=1m2{3 "size": 1000,4 "query": { "match_all": {} }5}大量深分页优先考虑 PIT 加 search_after;Scroll 更适合批处理。
1GET /_ilm/status1PUT /_ilm/policy/logs-policy2{3 "policy": {4 "phases": {5 "hot": {6 "actions": {7 "rollover": { "max_primary_shard_size": "50gb" }8 }9 },10 "delete": {11 "min_age": "30d",12 "actions": { "delete": {} }13 }14 }15 }16}1GET /_ilm/policy/logs-policy1GET /logs-*/_ilm/explain1POST /logs-000001/_ilm/retry1GET /_data_stream1PUT /_data_stream/logs-app-default创建前需要匹配的数据流索引模板。
1GET /_data_stream/logs-app-default/_stats1POST /logs-app-default/_rollover1DELETE /_data_stream/logs-app-default该操作会删除数据流及其隐藏后备索引,执行前必须确认。
1PUT /_snapshot/es-backup2{3 "type": "fs",4 "settings": {5 "location": "/mnt/es-backup",6 "compress": true7 }8}所有主节点和数据节点需正确配置并可访问 path.repo。
1GET /_snapshot1POST /_snapshot/es-backup/_verify1PUT /_snapshot/es-backup/snapshot-20260727?wait_for_completion=false2{3 "indices": "orders-*",4 "include_global_state": false5}1GET /_cat/snapshots/es-backup?v1GET /_snapshot/es-backup/snapshot-20260727/_status1POST /_snapshot/es-backup/snapshot-20260727/_restore2{3 "indices": "orders-*",4 "rename_pattern": "(.+)",5 "rename_replacement": "restore-$1",6 "include_global_state": false7}1DELETE /_snapshot/es-backup/snapshot-20260727不要直接删除仓库目录中的文件。
1POST /_snapshot/es-backup/_cleanup1GET /_slm/status1GET /_security/_authenticate1GET /_security/user1GET /_security/role1POST /_security/api_key2{3 "name": "monitoring-key",4 "role_descriptors": {5 "monitor": {6 "cluster": ["monitor"],7 "indices": []8 }9 }10}API Key 仅在创建时返回明文,应立即安全保存。
1GET /_license1systemctl status elasticsearch容器或编排环境请改用对应的容器、Pod 和 StatefulSet 检查命令。
1journalctl -u elasticsearch --since "30 minutes ago"1df -h2ulimit -n1sysctl vm.max_map_countLinux 生产环境通常需满足 Elasticsearch 当前版本文档给出的最低要求。
1GET /_cluster/health2GET /_cat/nodes?v3GET /_cat/indices?v&s=health,index4GET /_cat/shards?v&s=state,index5GET /_cluster/pending_tasks6GET /_nodes/stats/jvm,fs,thread_pool,breaker7GET /_cat/recovery?v&active_only=true8GET /_slm/status建议将这些只读检查纳入监控,并重点跟踪集群状态、未分配分片、磁盘水位、JVM 压力、拒绝任务、快照失败和证书有效期。
Elasticsearch 运维应先看集群健康,再沿着节点、索引、分片、任务和资源指标逐层定位。删除、迁移、重路由和恢复类 API 的影响范围较大,生产操作前应保留快照、限制目标并准备回退方案。