监控
Testudo 的可观测性来自 CRD status、conditions、history、Kubernetes Event、Server Watch API、日志和 operator metrics。
关键对象
| 对象 | 关注字段 |
|---|---|
DisasterInstance | status.fsmState、reason、message、conditions |
DataSync | 最新 backup/restore、state、history |
ResourceSync | phase、restore 状态、modifier 结果 |
DisasterOperation | currentStep、steps、state、autoCancel |
AppBackup / AppRestore | Velero 关联对象、失败原因 |
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。