From d4114caca089291fee0de566c7442ff46393d326 Mon Sep 17 00:00:00 2001 From: panxiao81 Date: Fri, 25 Sep 2026 21:03:00 +0000 Subject: [PATCH] =?UTF-8?q?=E8=A1=A5=E5=85=85=20OpenBao=20=E5=81=A5?= =?UTF-8?q?=E5=BA=B7=E4=B8=8E=E5=BF=AB=E7=85=A7=E5=91=8A=E8=AD=A6=E8=BF=90?= =?UTF-8?q?=E7=BB=B4=E5=8F=8A=E9=AA=8C=E6=94=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- guides/monitoring-coverage.md | 3 ++- guides/openbao-monitoring-maintenance.md | 34 +++++++++++++++++++++++- services/index.md | 2 +- services/openbao.md | 15 +++++++---- 4 files changed, 46 insertions(+), 8 deletions(-) diff --git a/guides/monitoring-coverage.md b/guides/monitoring-coverage.md index a485ee9..78307f0 100644 --- a/guides/monitoring-coverage.md +++ b/guides/monitoring-coverage.md @@ -20,7 +20,8 @@ last_reviewed: 2026-09-25 第二批已补 [证书、ESO 与 Flux](monitoring-controllers.md) 的 15 条规则, 以及 [CNPG、NATS 与 SeaweedFS](monitoring-data-services.md) 的 14 条规则和 12 个新采集目标。 OpenBao 已完成受鉴权 telemetry、ServiceMonitor 与采集不可用规则,维护者人工解封后验收通过; -并修复快照续期、生成维护前快照及 VM 外副本,详见 [维护 runbook](openbao-monitoring-maintenance.md)。 +并修复快照续期、生成维护前快照及 VM 外副本;随后增加内部健康和独立 node_exporter +快照失败/新鲜度/指标缺失告警,详见 [维护 runbook](openbao-monitoring-maintenance.md)。 备份独立验收、NATS consumer 维度、外部探测和集群外心跳仍待补齐。 ## 证据和范围 diff --git a/guides/openbao-monitoring-maintenance.md b/guides/openbao-monitoring-maintenance.md index 7dc376c..26daaf1 100644 --- a/guides/openbao-monitoring-maintenance.md +++ b/guides/openbao-monitoring-maintenance.md @@ -27,7 +27,9 @@ cluster_id 与维护前一致,匿名 metrics 仍为 403。 快照 service Result=success、timer active;文件只在写入成功后更名,失败不清理旧快照。 metrics policy/role 已按候选源配置应用:实际 vmagent-main SA 登录与 token 续期成功, -无权读取业务 Secret,测试 token 已撤销;Terraform import blocks 已备好,主 state 纳管尚未执行。 +无权读取业务 Secret,测试 token 已撤销。随后已将 `vault_policy.metrics` 与 +`vault_kubernetes_auth_backend_role.metrics` 导入现有 SeaweedFS S3 主远端 state, +仅针对这两项的 plan 均为 no-op;这不代表整个 Terraform 配置已经全量 zero-diff。 重启后 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 应用 @@ -39,6 +41,36 @@ Bao Agent 日志确认自动登录成功、token 写入内存卷及首次自动 以下保留操作顺序和回滚方法;其中“待执行”描述须结合本节判断,不能重复重启。 +## 内部健康和快照日常监控 + +2026-09-25 后续部署未重启 Bao(启动时间仍为 20:34:43 UTC)。真实快照任务 +Result=success、退出码 0,新快照 194598 bytes;VM 指标报告 success=1、textfile scrape error=0。 +Flux 已应用 `7137426e8f5c99ca1514c508501e07c2066dd769`;API 和 VM exporter 两类 target 均为 up, +快照结果与成功时间已进入 VictoriaMetrics。21:02:27 UTC 六条 OpenBao 规则均 inactive, +部署初期缺数据 pending 已解除;全栈 108 条规则无评估错误。Ansible 部署后 check mode 零变更。 +本次通过 28 个告警语义场景及 4 个快照脚本测试,未通过制造真实故障验证 Telegram。 + +[PR #163](https://git.ddupan.top/panxiao81/homelab-infra/pulls/163) 补齐内部健康、健康 gauge 缺失、 +快照失败、快照超时/无成功记录和快照采集失联五条规则;原有受鉴权采集不可用规则保留。 +仍由 ServiceMonitor 和 PrometheusRule 声明。内部 active 判定面向当前单节点,扩容为多节点前需修改。 + +VM 使用 Ubuntu node_exporter,监听 `192.168.10.8:9100`;没有公共入口,当前 UFW 未启用, +LAN 地址绑定不是逐来源 ACL。采集标签为 `job=node-exporter,node=bao1`,复用主机内存和文件系统规则。 +textfile 目录 `/var/lib/prometheus/node-exporter/` 只由 root 写入,指标不带 token 或快照内容。 +独立 exporter 在 Bao sealed 或快照 token 失效时仍能报告快照结果。 + +每日任务失败会记录 result=0,保留旧的最后成功时间;只有完整快照原子更名后才更新成功时间并清理旧文件。 +失败持续 5 分钟为 warning,距最后成功超过 36 小时或没有成功指标持续 15 分钟为 critical; +exporter 失联、textfile 解析错误、结果指标缺失持续 5 分钟为 warning。 +本地快照成功不等于已复制到独立故障域,更不等于恢复演练通过。 + +部署和回滚使用独立的 `ansible/monitor-openbao.yml`,只处理 exporter、快照脚本和 timer; +不改 Bao 服务配置,不轮换 token,不需要再次人工解封。首次部署必须执行一次真实快照建立基线。 +参数、验证命令与回滚边界见 +[源码监控运维说明](https://git.ddupan.top/panxiao81/homelab-infra/src/branch/main/infrastructure/openbao/MONITORING.md)。 + + + ## 目标、分工与影响 - 执行者:准备配置与采集声明、检查、备份核对、部署、观测和配置回滚。 diff --git a/services/index.md b/services/index.md index 02be2b5..7d1ef11 100644 --- a/services/index.md +++ b/services/index.md @@ -59,7 +59,7 @@ SPIFFE/SPIRE 已按维护者授权补读 #34;LAN DNS 与 Authelia 已按维护 | kata-lxc-lab | LXC 内 Kata worker 试验 | `pve2 / 记录地址 192.168.10.128` | 记录 PoC 验证;非正式生产服务 | `infrastructure/kata-lxc-lab/README.md` | 明确与 microVM runner 的职责 | | microvm-runner(历史目录名) | 动态 runner 的 homelab 基础设施记录 | 当前项目接口见 [Dynamic Runner](gitea-dynamic-runner.md) | 独立项目已更名并扩展到 Pod/VM,正在积极开发 | `infrastructure/microvm-runner/README.md`、独立项目文档 | 具体启用范围和实现进度以独立项目文档为准 | | [oci](oci.md) | 云主机、网络与站点互联 | `OCI ap-osaka-1` | 有恢复、接管与网络实施记录 | `infrastructure/oci/README.md` | 已有登录、站点网络与维护入口 | -| [openbao](openbao.md) | 秘密管理与内部 CA | `bao.ad.ddupan.top` | 有部署与接管记录 | `infrastructure/openbao/README.md` | 已有登录、取密与运维入口指南 | +| [openbao](openbao.md) | 秘密管理与内部 CA | `bao.ad.ddupan.top` | 人工解封、中央采集与本地快照已验收 | `infrastructure/openbao/README.md` | 内部健康和快照新鲜度有告警;异地恢复演练待完成 | | [proxmox](proxmox.md) | PVE、虚拟化与主机基础设施 | `PVE 管理入口` | 已有基础设施 | `infrastructure/proxmox/ansible/` 与 `README-ha.md` | 已有管理入口;sandbox LB/根盘恢复流程见服务页;身份与 runner 设计见独立项目 | | [samba-ad](samba-ad.md) | AD 身份、域 DNS 与域成员管理 | `dc1 / 192.168.10.5` | 有部署记录;维护者说明 DNS 部分已完成 | `infrastructure/samba-ad/README.md`、[LAN DNS](lan-dns.md) | 已有入域、目录浏览与日常管理入口 | diff --git a/services/openbao.md b/services/openbao.md index 9657c9d..5be3dce 100644 --- a/services/openbao.md +++ b/services/openbao.md @@ -1,9 +1,9 @@ --- title: OpenBao 使用指南 lifecycle: active -evidence: documented +evidence: live-verified last_reviewed: 2026-09-25 -last_verified: null +last_verified: 2026-09-25 --- # OpenBao @@ -12,7 +12,8 @@ OpenBao 提供秘密管理与内部 CA,部署在 Kubernetes 之外的独立主 日常使用是以自己的身份登录,按已有 policy 读取秘密或申请短期凭据。 本页依据 homelab-infra 工作区 `infrastructure/openbao/README.md` 整理, -CLI 语法参考下列官方文档。本轮未登录服务、读取秘密或验证现场。 +CLI 语法参考下列官方文档。登录和取密指南仍以文档为据;2026-09-25 已现场验证 +服务解封、中央指标、ESO 秘密刷新及本地快照监控,范围见本文末节。 ## 人的登录入口 @@ -93,10 +94,14 @@ Dynamic Runner 提供执行环境和 workload 身份,具体向 OpenBao 请求 job 为 `openbao`。同 Pod 的 Bao Agent 使用 Kubernetes SA 登录 metrics role,自动续期, token 仅保存于内存卷;指标身份不能读取业务秘密,匿名 metrics 仍被拒绝。 已有目标 down/消失持续 3 分钟的 critical 告警,通知沿用 Telegram。 -本次仅完成基础采集与可用性告警,不代表已覆盖全部 Raft、PKI 或备份新鲜度规则。 +内部健康规则另检查当前单节点的 active、unsealed、Raft autopilot node healthy, +并单独告警健康 gauge 缺失。以后改为多节点时必须调整 active 判定;尚未覆盖全部 Raft 或 PKI 风险。 维护中已修复快照 token 失效及脚本缺少续期的问题,生成新快照并核对 VM 外副本。 -快照 timer 已启用,未来执行结果和恢复演练仍需独立监控/验收。 +快照 timer 已启用;独立的 VM node_exporter 通过 textfile 上报最近结果、完成时间和最后成功时间, +不依赖 Bao 解封或 API token。快照失败持续 5 分钟为 warning,超过 36 小时无成功快照 +或无成功记录持续 15 分钟为 critical;采集失联/损坏也有专用告警。 +标准主机指标复用现有主机规则。异地副本与恢复演练仍需独立验收。 维护者用 working PC 的 YubiKey 解密 VM 上保存的加密 unseal share,重启后人工解封。 本次服务配置变更、采集上线与恢复验收已完成,详细操作与证据见