4. 同步状态查看:Harbor UI中的同步任务列表、任务详情与执行日志、同步历史记录查询

镜像复制(Replication)是 Harbor 实现跨实例分发与灾备的核心能力。当复制规则配置完成后,运维人员需要频繁查看同步任务的执行状态、分析失败原因并追溯历史记录。本章聚焦 Harbor UI 中与同步状态查看相关的三个关键界面:任务列表、任务详情与执行日志、同步历史记录查询。

4.1 同步任务列表:全局状态总览

在 Harbor 左侧导航栏选择 “复制” → “任务”,即可进入同步任务列表页面。该页面以表格形式展示所有已触发的复制任务,是日常巡检的首选入口。

字段 说明 典型值 / 示例
ID 任务唯一标识,按触发时间递增 12345
规则名称 触发该任务的复制规则名称 prod-to-dr
状态 当前执行阶段:待处理、运行中、成功、失败、已停止 成功
触发方式 手动触发 / 定时调度 / 事件驱动 定时调度
开始时间 任务实际开始执行的时间戳 2025-03-21 14:30:00
结束时间 任务完成或失败的时间戳 2025-03-21 14:32:15
总资源数 本次任务需要同步的镜像/Chart 总数 12
已同步 成功传输的资源数量 10
失败 传输失败的资源数量 2
巡检技巧: 关注“失败”列非零的任务,以及“状态”为“运行中”但持续时间超过预期阈值的任务。建议在监控系统中对“失败”和“运行中超过 30 分钟”的任务设置告警。

4.2 任务详情与执行日志:逐层下钻分析

点击任务列表中的任意任务 ID,进入任务详情页。该页面分为两个核心区域:任务概要 和 资源列表。

4.2.1 任务概要

展示该任务的完整元数据,包括规则配置快照、触发方式、执行节点、总耗时、最终状态等。运维人员可在此确认任务是否按照预期规则执行。

4.2.2 资源列表与执行日志

资源列表以表格形式展示每个待同步的镜像/Chart 的传输状态:

  • 资源名称:如 library/nginx:1.25
  • 状态:成功 / 失败 / 跳过
  • 源端摘要:源仓库的镜像 digest
  • 目标端摘要:目标仓库的镜像 digest(成功时显示)
  • 错误信息:失败时的简要错误描述

点击资源行右侧的 “日志” 按钮,弹出该资源传输的详细执行日志。日志内容包含以下关键阶段:

2025-03-21 14:30:05 [INFO] 开始拉取镜像: library/nginx:1.25
2025-03-21 14:30:06 [INFO] 源端连接成功,获取 manifest
2025-03-21 14:30:08 [INFO] 开始传输层: sha256:abc123...
2025-03-21 14:30:10 [INFO] 层传输完成 (12.5 MB)
2025-03-21 14:30:11 [INFO] 开始传输层: sha256:def456...
2025-03-21 14:30:15 [ERROR] 层传输失败: 连接目标仓库超时 (30s)
2025-03-21 14:30:16 [INFO] 重试第 1 次...
2025-03-21 14:30:46 [ERROR] 重试第 1 次失败: 连接目标仓库超时 (30s)
2025-03-21 14:30:46 [ERROR] 资源传输失败,已达最大重试次数
故障排查要点: 执行日志是定位同步失败的根本依据。常见错误模式包括:
• 连接超时:检查网络连通性、防火墙规则、目标 Harbor 负载。
• 认证失败:检查目标项目的机器人账户或访问凭证是否过期。
• 磁盘空间不足:目标 Harbor 实例的存储容量已满。
• Manifest 不兼容:源端与目标端 Harbor 版本差异导致 schema 版本不匹配。

4.3 同步历史记录查询:趋势分析与审计

Harbor 保留所有复制任务的执行历史,支持按时间范围、规则名称、状态等条件进行过滤查询。历史记录界面位于 “复制” → “历史”。

4.3.1 查询条件

  • 时间范围:支持最近 1 小时、24 小时、7 天、自定义时间段。
  • 规则名称:下拉选择特定复制规则。
  • 状态:全部 / 成功 / 失败 / 运行中。
  • 触发方式:手动 / 定时 / 事件驱动。

4.3.2 历史记录列表

查询结果以表格形式呈现,包含任务 ID、规则名称、状态、开始时间、结束时间、耗时、资源总数、成功数、失败数。支持按开始时间降序排列,便于快速定位最新任务。

4.3.3 历史趋势分析

通过分析历史记录,运维人员可以识别出以下模式:

模式 可能原因 建议措施
每日固定时段失败率升高 目标 Harbor 在该时段执行备份或 GC,导致服务不可用 调整复制规则调度时间,避开维护窗口
特定规则持续失败 目标项目被删除、凭证失效、网络策略变更 检查规则配置,重新验证目标端可用性
任务耗时逐渐增长 镜像仓库中镜像数量或层体积持续增长 评估是否需要增加带宽、优化网络链路或拆分规则
偶发超时失败后自动恢复 网络抖动或目标端瞬时负载高 确认重试机制已生效,无需人工干预
最佳实践: 建议将 Harbor 复制历史记录通过 API 导出至外部日志平台(如 ELK、Splunk),构建长期趋势仪表盘。Harbor 提供 /api/v2.0/replication/executions 接口,支持按时间范围批量拉取任务记录。

4.4 同步状态查看流程总览

以下 SVG 图展示了从任务列表到日志分析的完整查看路径,帮助运维人员建立系统化的排查思路。

同步状态查看流程总览 任务列表 全局状态总览 任务详情 概要 + 资源列表 执行日志 逐层传输详情 历史记录查询 时间/规则/状态过滤 趋势分析 失败模式 / 耗时变化 故障定位 日志分析 + 根因判断 说明: • 日常巡检:任务列表 → 关注失败/超时任务 → 下钻至执行日志 • 趋势分析:历史记录 → 识别周期性失败或性能退化 → 调整规则或基础设施

4.5 常见状态码与处理建议

在任务详情和日志中,Harbor 使用标准 HTTP 状态码表示传输结果。以下表格汇总了常见状态码及其含义:

状态码 含义 常见场景 处理建议
200 成功 镜像层传输完成 无需处理
401 未授权 目标仓库凭证无效或过期 更新复制规则中的目标端认证信息
403 禁止访问 目标项目不存在或用户无推送权限 检查目标项目是否存在,确认机器人账户权限
404 资源不存在 源镜像在传输过程中被删除 确认源镜像存在,重新触发同步
408 请求超时 网络延迟高或目标端负载过大 检查网络质量,增加超时配置,或拆分大镜像
413 请求实体过大 单层体积超过目标端限制 检查目标 Harbor 的 nginx 上传大小限制
500 服务端内部错误 目标 Harbor 存储异常或数据库故障 检查目标 Harbor 服务状态,查看服务端日志
502 网关错误 反向代理或负载均衡器无法连接后端 检查目标 Harbor 的负载均衡和后端服务健康
自动化建议: 通过 Harbor API 定期轮询 /api/v2.0/replication/executions?status=failed,将失败任务信息推送至企业微信、Slack 或 PagerDuty,实现同步失败的实时告警。