From 263a87d931721fa1ebfacc9dc69f9affe9a0ad1a Mon Sep 17 00:00:00 2001 From: panxiao81 Date: Fri, 25 Sep 2026 20:42:33 +0000 Subject: [PATCH] =?UTF-8?q?=E8=AE=B0=E5=BD=95=20OpenBao=20=E4=BA=BA?= =?UTF-8?q?=E5=B7=A5=E8=A7=A3=E5=B0=81=E3=80=81=E9=87=87=E9=9B=86=E4=B8=8A?= =?UTF-8?q?=E7=BA=BF=E4=B8=8E=E5=BF=AB=E7=85=A7=E4=BF=AE=E5=A4=8D=E9=AA=8C?= =?UTF-8?q?=E6=94=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- guides/monitoring-coverage.md | 6 ++--- guides/openbao-monitoring-maintenance.md | 32 +++++++++++++++++++++--- services/openbao.md | 19 ++++++++------ 3 files changed, 44 insertions(+), 13 deletions(-) diff --git a/guides/monitoring-coverage.md b/guides/monitoring-coverage.md index f831d62..a485ee9 100644 --- a/guides/monitoring-coverage.md +++ b/guides/monitoring-coverage.md @@ -19,9 +19,9 @@ last_reviewed: 2026-09-25 下面的规模、矩阵和盲点保留初轮盘点基线,不能再当作第一批实施后的现状。 第二批已补 [证书、ESO 与 Flux](monitoring-controllers.md) 的 15 条规则, 以及 [CNPG、NATS 与 SeaweedFS](monitoring-data-services.md) 的 14 条规则和 12 个新采集目标。 -OpenBao telemetry 尚未实施:匿名 metrics 返回 403,现有配置未声明 Prometheus retention; -维护者已要求现在准备维护,YubiKey 解密后人工 unseal, -执行顺序见 [OpenBao 维护 runbook](openbao-monitoring-maintenance.md);尚未开始停机。备份独立验收、NATS consumer 维度、外部探测和集群外心跳仍待补齐。 +OpenBao 已完成受鉴权 telemetry、ServiceMonitor 与采集不可用规则,维护者人工解封后验收通过; +并修复快照续期、生成维护前快照及 VM 外副本,详见 [维护 runbook](openbao-monitoring-maintenance.md)。 +备份独立验收、NATS consumer 维度、外部探测和集群外心跳仍待补齐。 ## 证据和范围 diff --git a/guides/openbao-monitoring-maintenance.md b/guides/openbao-monitoring-maintenance.md index 9233e95..7dc376c 100644 --- a/guides/openbao-monitoring-maintenance.md +++ b/guides/openbao-monitoring-maintenance.md @@ -6,13 +6,39 @@ last_reviewed: 2026-09-25 # OpenBao 监控接入维护 runbook 用于本次 OpenBao 自身指标接入中央监控。2026-09-25 维护者要求现在开始准备维护, -先完成顺序和 runbook;本文为待执行方案,不代表已经开启停机窗口或完成变更。 +先完成顺序和 runbook;本文同时保留执行顺序与最终验收,实际完成范围见下方“本次执行状态”。 建议从明确宣布开始计时预留 30 分钟,实际起止记录 UTC,并注明维护者当地时区。 维护者确认使用人工解封:解封材料保存在 Bao VM,经 GPG 加密,解密私钥由 YubiKey 持有。 文件确切位置、封装格式以及是否另有残留明文未核实;agent 不搜索或读取这些材料。 解密、PIN/触摸确认和提交 unseal share 由维护者在自己的终端完成。 +## 本次执行状态(2026-09-25) + +维护者已确认 YubiKey 解密可用并明确同意进入重启/人工解封交接。 +20:34:42 UTC 应用已校验 telemetry 配置并重启,随后维护者完成 unseal。 +现场确认 initialized=true、sealed=false、health=200、受鉴权 Prometheus metrics=200, +cluster_id 与维护前一致,匿名 metrics 仍为 403。 + +停机前已更换失效的快照 token,修正每日续期命令为现场支持的 `bao token renew`(不带 -self)。 +新快照 `openbao-20260925-203149.snap` 为 183334 bytes,VM 外副本保存在管理工作站 +`/home/panxiao81/.local/state/openbao-maintenance/`,权限 0600,SHA-256 一致。 +这是配置维护前的备份核验,不等于完成异机灾难恢复演练。 +快照 service Result=success、timer active;文件只在写入成功后更名,失败不清理旧快照。 + +metrics policy/role 已按候选源配置应用:实际 vmagent-main SA 登录与 token 续期成功, +无权读取业务 Secret,测试 token 已撤销;Terraform import blocks 已备好,主 state 纳管尚未执行。 +重启后 ClusterSecretStore 和 12 个 ExternalSecret Ready;monitoring/alertmanager-telegram +已定向刷新,refreshTime 更新为 20:39:33 UTC,状态 SecretSynced。 +[PR #162](https://git.ddupan.top/panxiao81/homelab-infra/pulls/162) 已合并,Flux 应用 +`834f65494195ba5e139e1fc6ee0221fd705b9656`,vmagent 新 Pod 3/3 Ready。 +Bao Agent 日志确认自动登录成功、token 写入内存卷及首次自动续期成功;up{job="openbao"}=1, +已观察连续三次 up=1,当前指标可查询,单次抓取约 636 个样本,OpenBaoMetricsUnavailable 规则已加载,无评估错误。 +本次未设置维护静默,无需清理 silence;没有撤销维护者自己的登录会话。 +真实长周期重新登录、快照未来定时运行和独立灾难恢复演练不包含在本次验收内。 + +以下保留操作顺序和回滚方法;其中“待执行”描述须结合本节判断,不能重复重启。 + ## 目标、分工与影响 - 执行者:准备配置与采集声明、检查、备份核对、部署、观测和配置回滚。 @@ -95,11 +121,11 @@ HTTPS 使用正确域名/CA,不关闭校验;metrics path 为 `/v1/sys/metric 放 query params,不能把问号串在 path 里。sealed 期间 metrics 不可用,因此还需独立 health/目标缺失检测, 不能仅靠 Bao 内部指标证明 sealed 状态可被发现。 -候选配置见 [WIP PR #162](https://git.ddupan.top/panxiao81/homelab-infra/pulls/162),尚未合并部署。 +配置见 [PR #162](https://git.ddupan.top/panxiao81/homelab-infra/pulls/162),已合并部署,状态以本次执行记录为准。 使用绑定 monitoring/vmagent-main 的 Kubernetes auth metrics role,由 Bao Agent sidecar 自动登录/续期, token 仅存 Pod 内存卷供 vmagent 只读消费。采集用 ServiceMonitor + 外部 Service/Endpoints; 现有 converter 的 Endpoints 发现保留,EndpointSlice 迁移另行处理。 -真实 role 权限、认证/续期及受鉴权 metrics 仍待管理员会话完成验收,不能只凭静态检查重启。 +role 权限、认证/首次续期与受鉴权 metrics 已验收;未来维护仍须重新核对现场,不只依靠历史记录。 使用现场版本支持的配置校验方式,先检查对应命令 help;禁止启动第二个 server 验证同一 Raft 数据目录。 现有 Ansible 写配置会通知 restart,不能把正式 apply 当作无停机预演。 diff --git a/services/openbao.md b/services/openbao.md index afcbb5d..9657c9d 100644 --- a/services/openbao.md +++ b/services/openbao.md @@ -89,11 +89,16 @@ Dynamic Runner 提供执行环境和 workload 身份,具体向 OpenBao 请求 ## 监控接入与维护窗口 -2026-09-25 只读核对:匿名 `/v1/sys/metrics?format=prometheus` 返回 403,仓库服务模板未声明 -Prometheus telemetry。中央监控尚未接入 OpenBao 自身指标;ESO store 状态只提供依赖侧间接检测。 -维护者于 2026-09-25 要求现在准备维护,先完成 runbook。解封材料由 VM 上的 GPG 加密文件保存, -解密依赖维护者的 YubiKey,并由维护者人工 unseal;文件格式和位置未核实。 -匿名 403 不足以判断 telemetry 是否启用,下一步先做受鉴权预检。 +2026-09-25 已启用受鉴权 Prometheus telemetry,ServiceMonitor 通过现有 vmagent 采集, +job 为 `openbao`。同 Pod 的 Bao Agent 使用 Kubernetes SA 登录 metrics role,自动续期, +token 仅保存于内存卷;指标身份不能读取业务秘密,匿名 metrics 仍被拒绝。 +已有目标 down/消失持续 3 分钟的 critical 告警,通知沿用 Telegram。 +本次仅完成基础采集与可用性告警,不代表已覆盖全部 Raft、PKI 或备份新鲜度规则。 -维护顺序、人工交接、验收和回滚以 [OpenBao 监控接入维护 runbook](../guides/openbao-monitoring-maintenance.md) -为准。当前为准备阶段,预检结果与 WIP 配置 PR 已记录在 runbook;尚未执行重启,也没有取得或读取解封材料。 +维护中已修复快照 token 失效及脚本缺少续期的问题,生成新快照并核对 VM 外副本。 +快照 timer 已启用,未来执行结果和恢复演练仍需独立监控/验收。 + +维护者用 working PC 的 YubiKey 解密 VM 上保存的加密 unseal share,重启后人工解封。 +本次服务配置变更、采集上线与恢复验收已完成,详细操作与证据见 +[OpenBao 监控接入维护 runbook](../guides/openbao-monitoring-maintenance.md)。 +后续重启仍需同样的人在场解封流程;不能因本次恢复成功假定已经自动解封。