此 API 用于获取快照的当前状态信息。
API #
GET /_snapshot/_status
GET /_snapshot/{repository}/_status
GET /_snapshot/{repository}/{snapshot}/_status
API 的作用 #
返回快照的当前状态信息,包括:
- 正在进行中的快照:正在执行的快照进度
- 已完成的快照:快照的详细统计信息
- 快照统计:文档数量、字节数、分片状态等
API 的参数 #
路由参数 #
| 参数 | 类型 | 是否必需 | 描述 |
|---|---|---|---|
repository | string | 可选 | 仓库名称 默认: _all(所有仓库) |
snapshot | string | 可选 | 快照名称 默认:所有快照 |
查询字符串参数 #
| 参数 | 类型 | 是否必需 | 默认值 | 描述 |
|---|---|---|---|---|
ignore_unavailable | boolean | 可选 | false | 是否忽略不可用的快照true:遇到不可用快照不报错false:不可用快照会抛出异常 |
master_timeout | time | 可选 | 30s | 等待主节点发现的超时时间 |
请求示例 #
# 查询所有仓库中所有快照的状态
GET /_snapshot/_status
# 查询指定仓库中所有快照的状态
GET /_snapshot/my-repo/_status
# 查询指定仓库中特定快照的状态
GET /_snapshot/my-repo/snapshot1/_status
# 忽略不可用的快照
GET /_snapshot/_status?ignore_unavailable=true
# 设置主节点超时时间
GET /_snapshot/_status?master_timeout=60s
响应示例 #
成功响应 - 正在进行中的快照 #
{
"snapshots": [
{
"snapshot": "snapshot1",
"repository": "my-repo",
"state": "IN_PROGRESS",
"indices": ["index1", "index2", "index3"],
"shards": {
"total": 9,
"pending": 3,
"successful": 6,
"failed": 0
},
"stats": {
"incremental": {
"file_count": 15,
"size_in_bytes": 524288000
},
"total": {
"file_count": 15,
"size_in_bytes": 524288000
},
"start_time_in_millis": 1707033600000,
"time_in_millis": 15000
}
}
]
}
成功响应 - 已完成的快照 #
{
"snapshots": [
{
"snapshot": "snapshot1",
"repository": "my-repo",
"state": "SUCCESS",
"indices": ["index1", "index2", "index3"],
"shards": {
"total": 9,
"successful": 9,
"failed": 0
},
"stats": {
"incremental": {
"file_count": 150,
"size_in_bytes": 5242880000
},
"total": {
"file_count": 150,
"size_in_bytes": 5242880000
},
"start_time_in_millis": 1707033600000,
"time_in_millis": 45000
}
}
]
}
响应字段说明 #
| 字段 | 描述 |
|---|---|
snapshot | 快照名称 |
repository | 仓库名称 |
state | 快照状态IN_PROGRESS:进行中SUCCESS:成功FAILED:失败PARTIAL:部分成功 |
indices | 快照包含的索引列表 |
shards.total | 总分片数 |
shards.pending | 等待处理的分片数 |
shards.successful | 成功的分片数 |
shards.failed | 失败的分片数 |
stats.incremental.file_count | 增量文件数量 |
stats.incremental.size_in_bytes | 增量文件大小(字节) |
stats.total.file_count | 总文件数量 |
stats.total.size_in_bytes | 总文件大小(字节) |
stats.start_time_in_millis | 开始时间(毫秒) |
stats.time_in_millis | 耗时(毫秒) |
使用场景 #
- 进度监控:监控正在进行中的快照进度
- 问题排查:诊断快照失败的原因
- 信息查询:获取已完成的快照统计信息
- 容量评估:评估快照占用的存储空间
快照状态说明 #
| 状态 | 描述 |
|---|---|
IN_PROGRESS | 快照正在进行中 |
SUCCESS | 快照成功完成 |
FAILED | 快照失败 |
PARTIAL | 部分分片失败 |
INCOMPATIBLE | 快照与当前版本不兼容 |
监控建议 #
- 定期检查:定期检查快照进度
- 失败告警:对失败的快照设置告警
- 存储监控:监控快照占用的存储空间
- 时间跟踪:记录快照完成时间用于容量规划
注意事项 #
- 此 API 只支持 GET 方法
- 默认查询所有仓库和所有快照
- 不可用的快照默认会导致错误,使用
ignore_unavailable=true忽略 - 正在进行中的快照会返回实时进度信息





