@@ -0,0 +1,49 @@
|
|||||||
|
---
|
||||||
|
title: 证书、秘密同步与 GitOps 监控
|
||||||
|
last_reviewed: 2026-09-25
|
||||||
|
---
|
||||||
|
|
||||||
|
# 证书、秘密同步与 GitOps 监控
|
||||||
|
|
||||||
|
采集与规则由 observability Flux Kustomization 管理,以 ServiceMonitor、PodMonitor 和
|
||||||
|
PrometheusRule 声明;VM Operator 转换后交给 vmagent/vmalert。
|
||||||
|
通知和静默入口见 [Grafana](../services/grafana.md#从告警进入-grafana)。
|
||||||
|
|
||||||
|
## 采集与阈值
|
||||||
|
|
||||||
|
| 对象 | 采集 | 告警 |
|
||||||
|
|---|---|---|
|
||||||
|
| cert-manager controller | ServiceMonitor,:9402,job=cert-manager | Certificate Ready=True 的值为 0 持续 15m;到期不足 7 天且至少 1 天 warning 15m;不足 1 天(含已过期)critical 5m |
|
||||||
|
| ESO 三个组件 | PodMonitor,:8080,以各组件名称为 job | ExternalSecret Ready=True 值为 0 持续 10m;ClusterSecretStore 同条件 5m critical |
|
||||||
|
| Flux 四个 controller | PodMonitor,:8080,以 controller 名称为 job | 八个已接入 controller job 各自 down 或整个 job 消失 5m warning |
|
||||||
|
| Flux 六类对象 | KSM 自定义资源状态 gotk_resource_info | 非暂停对象未 Ready 持续 15m;根 Kustomization 状态指标消失 5m |
|
||||||
|
|
||||||
|
controller 存活规则共 8 条,状态与证书规则共 7 条。证书 warning 和 critical 范围互斥。
|
||||||
|
采集使用 honorLabels,证书和 Secret 的 namespace/name 是被观测对象,不能覆盖为 exporter 命名空间。
|
||||||
|
目前只采集 cert-manager controller;webhook/cainjector 继续依赖通用 workload 健康规则。
|
||||||
|
|
||||||
|
Flux 自定义指标覆盖 Kustomization、HelmRelease、GitRepository、HelmRepository、HelmChart、
|
||||||
|
OCIRepository。KSM 只增加这些资源与 CRD 发现所需的 list/watch,保留 Kubernetes collectors。
|
||||||
|
resource_namespace 保存对象命名空间。suspended=true 排除;默认省略 suspend 仍参与判断。
|
||||||
|
OCI 类型 HelmRepository 正常没有 Ready 条件,repository_type=oci 排除;OCIRepository 本身仍检测。
|
||||||
|
不以旧 gotk_reconcile_condition 指标编写规则,也不通过告警自动解除暂停或修改配置。
|
||||||
|
|
||||||
|
## 排障
|
||||||
|
|
||||||
|
- 证书:先查 Certificate conditions,再沿 CertificateRequest、Issuer、Order、Challenge 找原因。
|
||||||
|
本规则只覆盖 cert-manager 管理的证书,不证明实际 HTTPS 入口已经加载新证书。
|
||||||
|
- Secret 同步:查 ExternalSecret/ClusterSecretStore conditions 与 ESO 日志,核对 provider 网络、身份和授权;
|
||||||
|
不输出 Secret 内容。旧的成功副本可能仍可用,但不能据此认为后续轮换可靠。
|
||||||
|
- Flux:按 customresource_kind、resource_namespace、name 定位对象,查 conditions 与依赖。
|
||||||
|
15m 用于容忍正常升级。主动维护使用暂停或有期限的静默,禁止永久屏蔽失败。
|
||||||
|
- 指标缺失:依次看原生监控 CR、转换对象、targets、即时查询和 KSM 的 RBAC/配置日志。
|
||||||
|
up==0 不能发现已移除目标,因此各预期 job 另用 absent 检测;同 job 单副本以外的拓扑缺失仍有盲点。
|
||||||
|
|
||||||
|
实现:[PR #160](https://git.ddupan.top/panxiao81/homelab-infra/pulls/160)、
|
||||||
|
[OCI 例外 #161](https://git.ddupan.top/panxiao81/homelab-infra/pulls/161)。
|
||||||
|
上游依据:[Flux 自定义指标](https://fluxcd.io/flux/monitoring/custom-metrics/)。
|
||||||
|
19 个规则语义测试覆盖暂停、缺省 suspend、OCI 例外、证书级别切换及 ESO 状态零值等。
|
||||||
|
2026-09-25 现场已确认这 8 个 controller target up,4 个证书到期样本、12 个 Ready Secret 状态样本,
|
||||||
|
KSM 已输出 Flux 对象状态。未人为使生产证书过期或中断 Secret 同步;通知链路沿用此前端到端验收。
|
||||||
|
|
||||||
|
最终 Flux 应用版本为 `655ca567baa58767fcb6a0fd45c78c1044c2b95f`,KSM HelmRelease Ready。
|
||||||
@@ -17,7 +17,10 @@ last_reviewed: 2026-09-25
|
|||||||
具体阈值、降噪边界、声明转换关系与验收方法见 [基础监控与告警运维](monitoring-foundation.md)。
|
具体阈值、降噪边界、声明转换关系与验收方法见 [基础监控与告警运维](monitoring-foundation.md)。
|
||||||
|
|
||||||
下面的规模、矩阵和盲点保留初轮盘点基线,不能再当作第一批实施后的现状。
|
下面的规模、矩阵和盲点保留初轮盘点基线,不能再当作第一批实施后的现状。
|
||||||
第二批数据库/OpenBao/存储/备份、外部探测和集群外心跳尚未实施。
|
第二批已补 [证书、ESO 与 Flux](monitoring-controllers.md) 的 15 条规则,
|
||||||
|
以及 [CNPG、NATS 与 SeaweedFS](monitoring-data-services.md) 的 14 条规则和 12 个新采集目标。
|
||||||
|
OpenBao telemetry 尚未实施:匿名 metrics 返回 403,现有配置未声明 Prometheus retention;
|
||||||
|
维护者已要求另定维护窗口后再操作,日期、时区及解封负责人待确认。备份独立验收、NATS consumer 维度、外部探测和集群外心跳仍待补齐。
|
||||||
|
|
||||||
## 证据和范围
|
## 证据和范围
|
||||||
|
|
||||||
|
|||||||
@@ -0,0 +1,48 @@
|
|||||||
|
---
|
||||||
|
title: CNPG、NATS 与 SeaweedFS 监控
|
||||||
|
last_reviewed: 2026-09-25
|
||||||
|
---
|
||||||
|
|
||||||
|
# CNPG、NATS 与 SeaweedFS 监控
|
||||||
|
|
||||||
|
本批仅增加指标采集与 14 条 PrometheusRule 告警,数据库范围按维护者要求限于 CNPG。
|
||||||
|
共享 Patroni PostgreSQL 与 etcd 的变更由对应任务管理。
|
||||||
|
|
||||||
|
## 采集与规则
|
||||||
|
|
||||||
|
| 服务 | 采集与范围 | 告警 |
|
||||||
|
|---|---|---|
|
||||||
|
| CNPG shared-db/shared-postgresql | PodMonitor 抓取已有实例 :9187,job=cnpg | exporter/目标不可用 5m critical;PostgreSQL down 2m critical;SQL 采集错误 5m;连接使用率 >80% 10m;非 idle 事务超过 300s 持续 5m |
|
||||||
|
| NATS | 沿用 job=nats/nats | JetStream 服务端文件或内存容量 >80% 10m;10m 内慢消费者计数增加并持续 5m |
|
||||||
|
| SeaweedFS | ServiceMonitor 仅选择 master/filer/volume 三个服务的 :9327 | 各组件采集不可用 5m critical;volume 可用磁盘 <10% 10m;因磁盘不足限制写入 5m critical;5m 内写失败增加持续 2m |
|
||||||
|
|
||||||
|
CNPG 使用内置 exporter,不新增数据库账号、不改数据库实例配置、不执行业务写入。
|
||||||
|
连接数按 Pod 汇总数据库与用户,再除以同实例 max_connections;长事务排除普通 idle 连接。
|
||||||
|
当前单实例没有复制冗余,不添加必然无法满足的副本告警。本批没有建立或验证备份流程。
|
||||||
|
|
||||||
|
NATS 本批是服务端容量,不能代替 Account、stream 限额与 consumer pending/redelivery 监控。
|
||||||
|
当前 exporter 未输出这些 consumer 维度,后续需明确 exporter 开关与业务阈值再补。
|
||||||
|
慢消费者使用增量,历史累计值不持续触发。
|
||||||
|
|
||||||
|
SeaweedFS 排除 filer-client 的重复发现,组件分别使用 seaweedfs-master/filer/volume job。
|
||||||
|
只把 isDiskSpaceLow 视为这条只读故障,避免满卷轮转或主动只读造成误报。
|
||||||
|
这些指标不证明 S3 请求端到端成功,也不证明副本和异机备份可恢复。
|
||||||
|
|
||||||
|
## 使用与故障定位
|
||||||
|
|
||||||
|
在 [Grafana Explore](https://grafana.ad.ddupan.top/explore) 选择 VictoriaMetrics,可查询:
|
||||||
|
|
||||||
|
```promql
|
||||||
|
cnpg_collector_up{job="cnpg"}
|
||||||
|
```
|
||||||
|
|
||||||
|
预期 CNPG 实例值为 1。告警中的 pod/namespace 对应数据库实例;先看 CNPG Cluster conditions、
|
||||||
|
Pod 日志及 PVC,再查连接池和事务。禁止仅为消除告警盲目提高连接上限或终止业务事务。
|
||||||
|
NATS 先查服务端配额、保留策略和消费者处理能力;不同 Account 的队列必须分别解释。
|
||||||
|
SeaweedFS 先查 volume 文件系统/ZFS 与日志,不能直接删除底层卷文件。
|
||||||
|
通知和临时静默见 [Grafana](../services/grafana.md#从告警进入-grafana)。
|
||||||
|
|
||||||
|
实现:[PR #160](https://git.ddupan.top/panxiao81/homelab-infra/pulls/160)。
|
||||||
|
2026-09-25 现场确认新增 CNPG 与 SeaweedFS 共 4 个 target up,CNPG collector_up=1,
|
||||||
|
SeaweedFS 容量指标有当前样本;NATS 沿用已验证采集。新增规则无评估错误。
|
||||||
|
测试覆盖连接数聚合、磁盘指标 type 标签匹配及慢消费者历史值;未制造生产数据库/磁盘故障。
|
||||||
@@ -58,3 +58,6 @@ Samba AD、OCI、Proxmox 已明确以 IaC 为准,可直接核对其代码;
|
|||||||
检索、转换或 AI 摘要用于定位原文;结论仍应关联到源码、维护者说明或 ticket。
|
检索、转换或 AI 摘要用于定位原文;结论仍应关联到源码、维护者说明或 ticket。
|
||||||
工作完成后,将持久使用方法写入服务页,将一次变化留在 commit/PR,动态进度回到原项目 ticket。
|
工作完成后,将持久使用方法写入服务页,将一次变化留在 commit/PR,动态进度回到原项目 ticket。
|
||||||
原仓库 README 同步目前按维护者要求暂缓,不将其列为每次任务的前置条件。
|
原仓库 README 同步目前按维护者要求暂缓,不将其列为每次任务的前置条件。
|
||||||
|
|
||||||
|
- [证书、秘密同步与 GitOps 监控](monitoring-controllers.md):证书临期、ESO 同步与 Flux Ready 排障。
|
||||||
|
- [CNPG、NATS 与 SeaweedFS 监控](monitoring-data-services.md):数据库连接、消息容量与存储故障。
|
||||||
|
|||||||
+2
-1
@@ -45,5 +45,6 @@ Dynamic Runner 的 stream、subject、durable 名称、worker 配置和具体启
|
|||||||
|
|
||||||
2026-09-25 已现场确认既有 :7777 prom-exporter 经 PodMonitor → VMPodScrape 接入中央采集,
|
2026-09-25 已现场确认既有 :7777 prom-exporter 经 PodMonitor → VMPodScrape 接入中央采集,
|
||||||
job 为 `nats/nats`,target up 且 nats_* 指标有当前样本。已有采集不可用/整个 job 消失告警;
|
job 为 `nats/nats`,target up 且 nats_* 指标有当前样本。已有采集不可用/整个 job 消失告警;
|
||||||
JetStream 容量、consumer 积压等业务规则仍待第二批。
|
已增加 JetStream 服务端容量与慢消费者规则;consumer 积压仍待后续。
|
||||||
|
范围和阈值见 [数据服务监控](../guides/monitoring-data-services.md)。
|
||||||
转换器故障处理与验证依据见 [基础监控运维](../guides/monitoring-foundation.md#nats-转换故障经验)。
|
转换器故障处理与验证依据见 [基础监控运维](../guides/monitoring-foundation.md#nats-转换故障经验)。
|
||||||
|
|||||||
+19
-1
@@ -2,7 +2,7 @@
|
|||||||
title: OpenBao 使用指南
|
title: OpenBao 使用指南
|
||||||
lifecycle: active
|
lifecycle: active
|
||||||
evidence: documented
|
evidence: documented
|
||||||
last_reviewed: 2026-09-16
|
last_reviewed: 2026-09-25
|
||||||
last_verified: null
|
last_verified: null
|
||||||
---
|
---
|
||||||
|
|
||||||
@@ -86,3 +86,21 @@ Dynamic Runner 提供执行环境和 workload 身份,具体向 OpenBao 请求
|
|||||||
日常登录成功不等于已完成备份或灾难恢复验收。
|
日常登录成功不等于已完成备份或灾难恢复验收。
|
||||||
|
|
||||||
来源文件的固定版本与工作区差异见[来源追溯](../sources.md#openbao)。
|
来源文件的固定版本与工作区差异见[来源追溯](../sources.md#openbao)。
|
||||||
|
|
||||||
|
## 监控接入与维护窗口
|
||||||
|
|
||||||
|
2026-09-25 只读核对:匿名 `/v1/sys/metrics?format=prometheus` 返回 403,仓库服务模板未声明
|
||||||
|
Prometheus telemetry。中央监控尚未接入 OpenBao 自身指标;ESO store 状态只提供依赖侧间接检测。
|
||||||
|
维护者要求先安排维护窗口,时间、时区和解封负责人待确认。本轮未修改或重启 OpenBao。
|
||||||
|
|
||||||
|
窗口建议预留 30 分钟,执行顺序为:
|
||||||
|
|
||||||
|
1. 核对现有 seal 类型、服务配置与 IaC 差异;确定人工解封负责人,密钥只由负责人自行使用。
|
||||||
|
2. 准备 telemetry 配置差异、仅 sys/metrics 读取权限的采集身份及其续期方式;不为方便采集开放匿名管理指标。
|
||||||
|
3. 核验最近快照及独立恢复凭据可用,保存可回滚配置;这些检查不能依赖重启后的 OpenBao 才能取到材料。
|
||||||
|
4. 宣告窗口并为明确受影响告警设置有截止时间的静默;变更、重启、解封由同一窗口协调。
|
||||||
|
5. 验证 TLS、健康状态、受鉴权 metrics、ESO 同步和现有认证链路,再接入 Prometheus 兼容监控 CR。
|
||||||
|
6. 异常时恢复原配置;回滚后的重启也可能需要再次解封。清理维护静默,记录验证结果。
|
||||||
|
|
||||||
|
以上为待执行步骤,不代表采集身份、快照恢复或 telemetry 已完成验收。
|
||||||
|
当前 Ansible 写配置会触发 restart;若采用 Shamir,必须预期重启后重新 sealed。
|
||||||
|
|||||||
@@ -2,7 +2,7 @@
|
|||||||
title: SeaweedFS S3 使用指南
|
title: SeaweedFS S3 使用指南
|
||||||
lifecycle: active
|
lifecycle: active
|
||||||
evidence: documented
|
evidence: documented
|
||||||
last_reviewed: 2026-09-16
|
last_reviewed: 2026-09-25
|
||||||
last_verified: null
|
last_verified: null
|
||||||
---
|
---
|
||||||
|
|
||||||
@@ -85,3 +85,8 @@ zot 的 S3 身份只允许相应 bucket 的 Read/Write/List/Tagging,不能访
|
|||||||
其他应用的数据保留与恢复策略应由各自用途明确,不能从“已接入 S3”推断已经完成备份。
|
其他应用的数据保留与恢复策略应由各自用途明确,不能从“已接入 S3”推断已经完成备份。
|
||||||
|
|
||||||
来源文件的固定版本与工作区差异见[来源追溯](../sources.md#seaweedfs)。
|
来源文件的固定版本与工作区差异见[来源追溯](../sources.md#seaweedfs)。
|
||||||
|
|
||||||
|
## 中央监控
|
||||||
|
|
||||||
|
2026-09-25 已接入 master、filer、volume 指标与容量/写入故障规则;
|
||||||
|
使用方式与验证边界见 [数据服务监控](../guides/monitoring-data-services.md)。
|
||||||
|
|||||||
Reference in New Issue
Block a user