Skip to content

常用运维操作

查看集群与索引信息:_cat API

_cat 提供人类可读的表格形式信息,常用:

接口说明
GET _cat/health?v集群健康
GET _cat/indices?v所有索引(大小、文档数、分片等)
GET _cat/nodes?v节点列表
GET _cat/shards?v分片分布
GET _cat/aliases?v别名列表

参数 v 表示显示表头。还可用 h=列名 指定要显示的列,如 ?v&h=index,docs.count,store.size


索引别名(Alias)

别名是索引的一个“名字”,可以指向一个或多个索引。应用通过别名访问,可以在不改业务代码的情况下切换底层索引(例如做零停机重建索引)。

创建与使用

http
POST _aliases
{
  "actions": [
    { "add": { "index": "products_v1", "alias": "products" } }
  ]
}

之后用 GET products/_search 即查询 products_v1

别名指向多个索引

例如按时间滚动的日志索引,可以让别名同时指向多个索引,查询时自动查所有:

http
POST _aliases
{
  "actions": [
    { "add": { "index": "logs-2024-01", "alias": "logs" } },
    { "add": { "index": "logs-2024-02", "alias": "logs" } }
  ]
}

写入时一般仍写具体索引名(如 logs-2024-02),或通过索引模板 + 写别名配合使用。

切换索引(零停机)

先创建新索引并 Reindex 数据,再通过别名切换:

  1. products_v2 建好并数据迁完。
  2. 一条 _aliases 里做两步:removeproducts -> products_v1add products -> products_v2

应用始终访问 products,无需停机。


重建索引(Reindex)

当需要修改 mapping迁移数据跨集群复制时,无法在原索引上改字段类型,只能新建索引并迁移数据,即 Reindex

同集群 Reindex

http
POST _reindex
{
  "source": { "index": "old_index" },
  "dest": { "index": "new_index" }
}

可将 old_index 的数据拷贝到 new_index。目标索引需事先创建好,且 mapping 符合预期。还可在 source 中加 query 做过滤,只迁移部分数据;用 sizesort 做分批。

注意

  • 大索引 Reindex 会占用资源,建议在低峰期执行或限速(requests_per_second)。
  • 若源索引仍在写入,Reindex 只复制快照时刻的数据,如需同步可考虑用 ingest pipeline 或业务双写。

快照与恢复(Snapshot)

快照用于备份整个集群或部分索引,可恢复到本集群或其它集群。

注册快照仓库

快照需先存在一个“仓库”(如共享文件系统或 S3):

http
PUT _snapshot/my_backup
{
  "type": "fs",
  "settings": {
    "location": "/data/elasticsearch/backup"
  }
}

(使用 fs 类型时,各节点需能访问同一路径;生产常用 S3 等。)

创建快照

http
PUT _snapshot/my_backup/snapshot_1
{
  "indices": "index1,index2",
  "include_global_state": false
}

不指定 indices 则备份所有索引。

恢复

http
POST _snapshot/my_backup/snapshot_1/_restore
{
  "indices": "index1",
  "rename_pattern": "index1",
  "rename_replacement": "index1_restored"
}

恢复前确保目标索引不存在或已关闭,避免冲突。


索引生命周期(ILM)简介

ILM(Index Lifecycle Management) 可自动管理索引的热(hot)→温(warm)→冷(cold)→删除等阶段,例如:

  • 新数据写入 hot 索引(SSD、多副本)。
  • 一段时间后滚到 warm(可减少副本、迁移到便宜存储)。
  • 再久移到 cold,最后按策略删除。

通过策略(policy)和索引模板绑定到索引名模式,由 ILM 定时执行 rollover、shrink、delete 等操作。详细配置见官方 ILM 文档。