From 91ed4b5caefa6f975739f9b0e4fef32a451d04c1 Mon Sep 17 00:00:00 2001 From: panxiao81 Date: Sun, 27 Sep 2026 17:08:23 +0000 Subject: [PATCH] =?UTF-8?q?docs:=20=E8=AE=B0=E5=BD=95=E5=85=B1=E4=BA=AB?= =?UTF-8?q?=E6=95=B0=E6=8D=AE=E7=BB=B4=E6=8A=A4=E9=87=87=E9=9B=86=E4=B8=8E?= =?UTF-8?q?=E5=91=8A=E8=AD=A6=E5=BE=85=E5=90=88=E5=B9=B6=E8=BE=B9=E7=95=8C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- services/index.md | 2 +- services/shared-etcd.md | 5 +++-- services/shared-postgresql.md | 25 +++++++++++++++++++++++-- verification.md | 8 ++++++++ 4 files changed, 35 insertions(+), 5 deletions(-) diff --git a/services/index.md b/services/index.md index 7d1ef11..8721410 100644 --- a/services/index.md +++ b/services/index.md @@ -27,7 +27,7 @@ SPIFFE/SPIRE 已按维护者授权补读 #34;LAN DNS 与 Authelia 已按维护 | [openviking](openviking.md) | 上下文检索服务 | `记录端口 1933 / 8020` | 配置与部署指南;未附上线记录 | `apps/openviking/README.md` | 已有导入、任务查询、检索与原文读取指南 | | [ps3netsrv](ps3netsrv.md) | PS3 网络内容服务 | `宿主 TCP 38008;地址未记录` | Docker 运维文档记录运行 | `apps/ps3netsrv/docker-compose.yml` | 已有客户端与内容目录指南 | | [seaweedfs](seaweedfs.md) | S3 对象存储 | `s3.ad.ddupan.top` | zot 文档记录已使用 | `apps/seaweedfs/README.md` | 已有客户端读写指南与备份边界说明 | -| [shared-etcd](shared-etcd.md) | homelab 共享协调与选主存储 | 三个 mTLS endpoints,见服务页 | 三成员已部署并现场验证,experimental | `infrastructure/etcd/README.md` | 原生指标与规则已接入;自动续签已启用;备份/证书年龄告警待补 | +| [shared-etcd](shared-etcd.md) | homelab 共享协调与选主存储 | 三个 mTLS endpoints,见服务页 | 三成员已部署并现场验证,experimental | `infrastructure/etcd/README.md` | 原生指标与规则已接入;自动续签已启用;维护指标采集已部署,告警规则待 PR #166 合并 | | [shared-postgresql](shared-postgresql.md) | CNPG 与新 k3s 外共享 PG | 旧 `shared-db`;新 `pg-prod` / `pg-dev.ad.ddupan.top` | 新生产主从与开发实例上线,旧应用未迁移 | `infrastructure/shared-postgresql/README.md`、旧 migration.md | 切换/备份恢复已验证;Ayatori 独立控制面仅备齐声明 | | [smtp-relay](smtp-relay.md) | 应用经 Microsoft 365 发信 | `smtp-relay.smtp-relay.svc.cluster.local:25` | 有配置与测试指南;未附上线记录 | `apps/smtp-relay/README.md` | 已有应用参数、测试邮件与投递边界指南 | | [tailscale](tailscale.md) | 远程网络与子网路由 | `Tailscale 网络` | 有配置;本轮未读敏感安装脚本 | `apps/tailscale/subnet-routes.sh` | 已有远程访问与路由边界指南 | diff --git a/services/shared-etcd.md b/services/shared-etcd.md index 617f25a..112c59a 100644 --- a/services/shared-etcd.md +++ b/services/shared-etcd.md @@ -2,7 +2,7 @@ title: Homelab 共享 etcd lifecycle: experimental evidence: live-verified -last_reviewed: 2026-09-25 +last_reviewed: 2026-09-27 last_verified: 2026-09-25 --- @@ -33,7 +33,8 @@ Patroni etcd3 gateway 使用无 CN 的 mTLS 证书加独立账号密码,不能 源码实现提供每日每成员本地快照、独立认证初始化、消费者收敛和逐成员更新入口。 三个成员的原生指标已接入现有 VictoriaMetrics,不增加 exporter;内网 2381 listener 不提供 KV API。 六条规则覆盖成员采集、采集可见成员不足、无 leader、容量、fsync 和选举,现场三目标 up=1、规则 health=ok。 -Alertmanager 已接入 [Telegram 通知](grafana.md#telegram-告警接入),warning/critical 可向外通知;备份年龄与证书到期告警尚待补齐。 +Alertmanager 已接入 [Telegram 通知](grafana.md#telegram-告警接入),warning/critical 可向外通知;备份/证书/续签检查的主机采集已于 2026-09-27 部署, +新增规则待 PR #166 合并,见[维护告警](shared-postgresql.md#维护告警2026-09-27)。 自动续签已启用:维护者恢复 OIDC 管理会话后,独立 cert auth、受限 policy 与每日 timer 已部署。 登录使用 laptop 现有 peer 证书,按 DNS SAN 限制身份;无 CN gateway 证书不能用于 Bao cert diff --git a/services/shared-postgresql.md b/services/shared-postgresql.md index f875cd5..49fe03c 100644 --- a/services/shared-postgresql.md +++ b/services/shared-postgresql.md @@ -2,7 +2,7 @@ title: 共享 PostgreSQL 使用指南 lifecycle: active evidence: documented -last_reviewed: 2026-09-25 +last_reviewed: 2026-09-27 last_verified: null --- @@ -129,7 +129,7 @@ Bao PKI 与专用 `homelab-postgresql` SPIFFE 身份已通过 OIDC 管理会话 数据库日常运行独立于 k3s;机器身份续签依赖现有 SPIRE 与 Bao,不等于运行时依赖。 生产 Patroni 原生指标已接入现有监控,两目标 up=1、五条 HA 规则 health=ok 且 inactive。 -SQL 级 exporter、开发实例、备份年龄和证书到期告警尚未补齐。存储事故与持续观察边界见 +SQL 级 exporter 仍后置;开发实例、备份年龄与证书的维护监控进度见下节。存储事故与持续观察边界见 [共享 etcd](shared-etcd.md#依赖维护与恢复),不以短期验收证明底层长期稳定。 维护者明确 Ayatori 沿用独立控制面规划:本轮只准备 Instance、ExternalSecret、公开 CA、 @@ -141,3 +141,24 @@ Kustomize 与专用 ESO 只读 policy,没有向现有 k3s 安装 controller/CR `ayatori/README.md`;部署、切换、恢复、续签及凭据引用的具体入口在那里维护,文档已发布 main;IaC 见 [IaC PR #159](https://git.ddupan.top/panxiao81/homelab-infra/pulls/159),已合并;2026-09-25 核实 Flux observability 已应用 `f6d12d6`,四个监控对象均已进入 inventory。 Terraform backend 已复用 `kv/k8s/seaweedfs-s3` 中受限 AK/SK;此前阻塞是 Bao 管理权限,已由 维护者重新 OIDC 登录解决,不是 S3 凭据缺失。旧 Ansible Vault 迁移仍后置。 + + +### 维护告警(2026-09-27) + +三台现有主机已部署只读采集与 textfile exporter,每分钟检查 etcd 成功快照、PG 仓库成功 full、 +磁盘证书链、laptop 上两个续签任务,以及 dev 本地 peer 身份的只读 SQL。无需新增数据库密码或 +Bao token,数据库和 etcd 未重启。实际检查均成功;vmagent Pod 可访问三个内网 `:9109/metrics`。 + +[IaC PR #166](https://git.ddupan.top/panxiao81/homelab-infra/pulls/166) 尚待合并,新增抓取和八条告警 +**尚未启用**。规则覆盖采集不可用/过期/单项失败、备份超过 36 小时、证书不足 10 天 warning / 3 天 +critical、续签检查超过 36 小时或失败,以及 dev SQL 连续异常 3 分钟。已有运行及选主告警保持启用。 + +故障时先查 `homelab-data-collect.service/timer` 和 `homelab-data-exporter.service`。 +备份异常再查原 snapshot/backup unit;续签异常查 laptop 的两个 renew unit 和 Bao/SPIRE 连通性; +dev 异常查数据库 unit、磁盘及 socket。不要通过修改备份文件时间、删除证书或重建实例消除告警。 + +备份年龄不证明可恢复或 WAL 连续;dev 只读检查不验证外部 DNS/TLS;磁盘证书有效不证明运行进程已 +重载。部署入口与详细排障见 [维护监控 runbook](https://git.ddupan.top/panxiao81/homelab-infra/src/branch/main/infrastructure/shared-data-monitoring/README.md)。 +文档来源 [26a8ffe](https://git.ddupan.top/panxiao81/homelab-infra/commit/26a8ffe),IaC 版本 +[0988f5c](https://git.ddupan.top/panxiao81/homelab-infra/commit/0988f5c)。6 项采集测试、12 个新增告警场景、 +既有规则回归、Ansible lint 和 Kustomize 渲染通过;三主机重复部署 `changed=0`。 diff --git a/verification.md b/verification.md index 3733f10..c60e458 100644 --- a/verification.md +++ b/verification.md @@ -162,3 +162,11 @@ Ayatori 按维护者决定继续使用独立控制面,本轮只准备接入材 源码 [PR #165](https://git.ddupan.top/panxiao81/homelab-infra/pulls/165) 已获授权并合并至 main, 提交为 [06943d4](https://git.ddupan.top/panxiao81/homelab-infra/commit/06943d4c6583f1b62fea6176b56f237da54a12e7),与已部署配置一致。 配置及验证范围见 [ARC 内存预算](guides/laptop-arc-budget.md)。本次合并未重复应用或重启主机;下一次更新负载下的效果仍待观察。 + + +## 共享数据维护告警接管边界 + +2026-09-27 主机端采集、低开销 exporter 和三目标网络验证完成,6 项采集测试及 12 个新增规则场景通过。 +相关 [PR #166](https://git.ddupan.top/panxiao81/homelab-infra/pulls/166) 尚未合并;新增 VMStaticScrape/VMRule +尚未现场应用,不能把端点可达当作告警已启用。合并后需核实 Flux inventory、三个 up 目标及八条规则健康。 +详细事实见[维护告警](services/shared-postgresql.md#维护告警2026-09-27)。现有 PR #159 的接管验收不受影响。