跳到主要内容

监控

Testudo 的可观测性来自 CRD status、conditions、history、Kubernetes Event、Server Watch API、日志和 operator metrics。

关键对象

对象关注字段
DisasterInstancestatus.fsmStatereasonmessageconditions
DataSync最新 backup/restore、state、history
ResourceSyncphase、restore 状态、modifier 结果
DisasterOperationcurrentStepstepsstateautoCancel
AppBackup / AppRestoreVelero 关联对象、失败原因
BackupRestoreStatistics备份、恢复、实例、操作统计

基础巡检命令

kubectl -n disaster-system get disasterinstances.testudo.softcdata.com
kubectl -n disaster-system get disasteroperation
kubectl -n disaster-system get appbackups,apprestores
kubectl -n disaster-system get events --sort-by=.lastTimestamp

日志

kubectl -n disaster-system logs deploy/disaster-operator-controller-manager
kubectl -n disaster-system logs deploy/disaster-server
kubectl -n disaster-system logs deploy/disaster-web

建议将 operator 和 server 日志接入集中日志系统,并按实例名、operation 名、trace ID 做检索。

Metrics

Operator 基于 controller-runtime 暴露 metrics。当前部署中 metrics service 默认端口为 8443,并使用认证/授权过滤器保护 /metrics

验证:

kubectl -n disaster-system get svc | grep metrics
kubectl -n disaster-system get endpoints | grep metrics

如果接入 Prometheus,应确保:

  • Prometheus ServiceAccount 有访问 metrics 的 RBAC。
  • TLS 和 bearer token 配置正确。
  • NetworkPolicy 允许监控命名空间访问 metrics service。

告警建议

建议至少覆盖:

  • 实例长时间不进入 Protected
  • DisasterOperation 长时间停留在同一步骤。
  • AppBackup/AppRestore 失败。
  • Velero Backup/Restore 失败。
  • BSL 不可用。
  • Server 5xx 或认证失败异常增多。
  • 对象存储容量或错误率异常。

控制台与 Watch API

控制台通过 REST/Watch 获取状态。若页面不刷新但 CRD 状态变化正常,优先检查 server 日志、Watch 路由、网关长连接和浏览器 Network。